Jer*_*aho 3 ios cncontactstore
有人尝试使用 iOS 9 联系人框架删除现有的联系人组吗?
我初始化联系人存储并请求联系人组列表,这为我提供了一组CNGroup实例:
var groups: [CNGroup]?
do {
self.groups = try contactStore.groupsMatchingPredicate(nil)
}
catch { ... }
Run Code Online (Sandbox Code Playgroud)
然后我在表格视图中显示这些组。当用户滑动表格视图单元格时,我想从联系人存储中删除相应的组。
但是, 的deleteGroup方法CNContactStore需要一个CNMutableGroup实例,而不是一个CNGroup. Xcode 给了我一个错误:
Cannot convert value of type 'CNGroup' to expected type 'CNMutableGroup'
Run Code Online (Sandbox Code Playgroud)
显然,如果我尝试将CNGroup实例转换为 a CNMutableGroup:
let saveRequest = CNSaveRequest()
saveRequest.deleteGroup(group as! CNMutableGroup)
do {
try contactStore.executeSaveRequest(saveRequest)
}
catch { ... }
Run Code Online (Sandbox Code Playgroud)
我在运行时崩溃:
Could not cast value of type 'CNGroup' (0x370890f8) to 'CNMutableGroup' (0x370899f4)
Run Code Online (Sandbox Code Playgroud)
我意识到这是因为CNGroup是 的超类CNMutableGroup,但是我再次看不到如何CNMutableGroup使用CNGroup实例进行初始化。
我已请求访问联系人框架。Xcode 7.3,iOS 9.2.1。
那么,有关如何删除联系人组的任何想法?
小智 5
投射 CNGroup 的可变副本修复了这个问题。
let saveRequest = CNSaveRequest()
saveRequest.deleteGroup(group.mutableCopy() as! CNMutableGroup)
do {
try contactStore.executeSaveRequest(saveRequest)
}
catch { ... }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1123 次 |
| 最近记录: |