gpt4 book ai didi

ios - CNSaveRequest.addGroup 和 deleteGroup 不会立即更改联系人中的组

转载 作者:行者123 更新时间:2023-11-28 06:56:18 24 4
gpt4 key购买 nike

在 Swift 中,当您通过将 CNSaveRequest 传递给 CNContactStore 来更新“联系人”时,更新会立即更改您 native 联系人应用中的联系人。

但是,当您通过将CNSaveRequest 传递给CNContactStore 来添加或删除“组”(CNGroup)时,添加或删除不会立即更改 native 联系人应用程序中的群组。

如果添加或删除“群组”,您必须终止并重新启动您的应用或 native 通讯录应用。

有什么方法可以立即更改 native 联系人应用程序中的群组?

例如,在代码 A 的情况下,您可以立即看到 native 联系人应用程序的变化。对于代码 B,您无法立即看到更改,您必须重新启动您的应用或 native 联系人应用。

我不用ABAddressbook,自然要说iOS9了。

[代码A]

let req = CNSaveRequest()
req.updateContact(fooContact)
do {
try contactStore.executeSaveRequest(req)
} catch {
print("\(error)")
}

[代码B]

let req = CNSaveRequest()
req.addGroup(mutableGroup)
do {
try contactStore.executeSaveRequest(req)
} catch {
print("\(error)")
}

最佳答案

抱歉,这个问题是我自己解决的...我添加了刷新显示 CNGroup 数组的 UITableViewdataSource 的代码。例如,...

var groups: [CNGroup] = [] // dataSource of myTableView

......

// Custome function to be called when you want to refresh myTableView
function refreshMyTableView() {
do {
// I forget adding the line below to refresh tableview datasource
try self.groups = contactStore.groupsMatchingPredicate(nil)
myTableView.reloadData()
} catch {
}
}

关于ios - CNSaveRequest.addGroup 和 deleteGroup 不会立即更改联系人中的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33514970/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com