gpt4 book ai didi

iPhone:将联系人添加到不在设备上工作但在 ABAddressbook 中的模拟器上工作的组

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:14:00 26 4
gpt4 key购买 nike

将联系人添加到不在设备上工作但在 ABAddressbook 中的模拟器上工作的组没有错误,但联系人未反射(reflect)在联系人的特定组中但在模拟器上运行良好

我正在使用这个代码

if (person) {
ABAddressBookAddRecord(addressBook, person, nil);

ABAddressBookSave(addressBook, &error);

BOOL isADDED = ABGroupAddMember(groupNameRef, person, &error);

NSError *error1 = (__bridge_transfer NSError *)error;

NSLog(@"Reason = %@", error1.localizedFailureReason);
BOOL iSSaved = ABAddressBookSave(addressBook, &error);
}

在模拟器上工作正常但在设备上不工作

最佳答案

它将帮助您从正确使用错误检查开始。以下是错误检查例程的结构:

if (person) {
bool ok;
CFErrorRef err = nil;
ok = ABAddressBookAddRecord(addressBook, person, &err);
if (!ok) {
NSLog(@"%@", err);
return;
}
ok = ABAddressBookSave(addressBook, &err);
if (!ok) {
NSLog(@"%@", err);
return;
}
ok = ABGroupAddMember(groupNameRef, person, &err);
if (!ok) {
NSLog(@"%@", err);
return;
}
ok = ABAddressBookSave(addressBook, &err);
if (!ok) {
NSLog(@"%@", err);
return;
}
}

注意这里的模式。该函数返回一个 bool 值。你检查那个 bool 值。如果为假,则检查间接返回的错误。如果您正确遵循此模式,您将获得有关问题所在的更好信息。

编辑:确保您确实有权访问联系人数据库。我假设你这样做了,但模拟器和设备之间的一个主要区别是模拟器自动授予访问权限,而在设备上,用户必须看到访问请求对话框(调用 ABAddressBookRequestAccessWithCompletion)否则将无法访问,并且尝试使用联系人数据库将失败,也许是无声的。

关于iPhone:将联系人添加到不在设备上工作但在 ABAddressbook 中的模拟器上工作的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16568304/

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