如何嵌套CNGroups并检测其嵌套关系?相关API是否存在?
关于Contacts框架嵌套组的API问题
1. 创建嵌套组的API支持
目前iOS/iPadOS的Contacts框架没有公开API允许主动将一个CNGroup添加为另一个CNGroup的子组。
虽然CNChangeHistoryAddSubgroupToGroupEvent类存在,但它仅用于记录从其他设备(如macOS)同步过来的嵌套组变更事件,并非用于主动发起创建嵌套组的操作。macOS平台的Contacts框架提供了CNGroup的subgroups和parentGroup属性来支持嵌套组的管理,但这些属性在iOS/iPadOS上并未开放,这也是为什么你能在macOS通讯录中操作嵌套组,但iOS/iPadOS系统应用未提供该功能的原因。
2. 检测嵌套组关系的API
同样,iOS/iPadOS的Contacts框架没有直接提供检测组间父子关系的API:
- 若嵌套组是从macOS同步到iOS/iPadOS的,你只能通过监听或查询
CNChangeHistoryEvent中的CNChangeHistoryAddSubgroupToGroupEvent记录,来推断组A和组B的隶属关系; - 直接通过
CNContactStore获取的CNGroup实例,不包含任何与父组/子组相关的属性,无法直接判断嵌套关系。
内容的提问来源于stack exchange,提问作者Stripes
相关产品推荐
相关产品推荐

