作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
下面的代码在模拟器(iOS 4 和 5)中运行良好,但在 iOS 4 设备上没有添加任何联系。没有返回错误。你知道为什么吗?
ABAddressBookRef ab = ABAddressBookCreate();
abGroupRef = ABAddressBookGetGroupWithRecordID(ab, 1);
ABRecordRef pRef = ABAddressBookGetPersonWithRecordID(ab, 1);
ABGroupAddMember(abGroupRef, pRef, &anError);
ABAddressBookSave(ab, &anError);
谢谢,--约瑟夫
最佳答案
始终检查返回 BOOL 值的函数的结果是一个很好的 Objective C 编程习惯(例如 ABGroupAddMember
或 ABAddressBookSave
或 NSArray
或 NSDictionary
writeToFile
方法)before 检查是否有错误作为参数之一返回.
尝试这样的事情:
ABAddressBookRef ab = ABAddressBookCreate();
ABRecordRef abGroupRef = ABAddressBookGetGroupWithRecordID(ab, 1);
ABRecordRef pRef = ABAddressBookGetPersonWithRecordID(ab, 1);
CFErrorRef anError = NULL;
NSError * anErrorAsObjectiveCObject; // for use with toll free bridged object magic
if(ABGroupAddMember(abGroupRef, pRef, &anError))
{
if(ABAddressBookSave(ab, &anError))
{
NSLog(@"successfully saved");
} else {
anErrorAsObjectiveCObject = (__bridge_transfer NSError *) anError;
NSLog( @"error in ABAddressBookSave - %@ %@", [anErrorAsObjectiveCObject domain], [anErrorAsObjectiveCObject localizedDescription] );
}
} else {
anErrorAsObjectiveCObject = (__bridge_transfer NSError *) anError;
NSLog( @"error in ABGroupAddMember - %@ %@", [anErrorAsObjectiveCObject domain], [anErrorAsObjectiveCObject localizedDescription] );
}
关于iphone - ABGroupAddMember 不适用于 iOS4 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8525360/
当我调用 ABRecordRef aRecord = ABPersonCreate() 时,ABGroupAddMember() 返回 YES。 但是当我使用 ABNewPersonViewContr
下面的代码在模拟器(iOS 4 和 5)中运行良好,但在 iOS 4 设备上没有添加任何联系。没有返回错误。你知道为什么吗? ABAddressBookRef ab = ABAddressBookCr
我需要阻止在我们的应用程序中显示联系人组,但是从地址簿中简单地删除组对用户来说是侵入性的。因此,我试图在显示联系人之前删除它们,然后在完成后将它们添加回去,以便地址簿保持不变并且 iOS 联系人应用程
我是一名优秀的程序员,十分优秀!