我一直在使用iOS应用程序,当我需要从手机中获取联系信息时,这是我的代码:

ABRecordID contactID = ABRecordGetRecordID(contact);
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(nil, nil);
ABRecordRef origContactRef = ABAddressBookGetPersonWithRecordID(addressBook, contactID);

CFRetain(origContactRef);
...
...
...
CFRelease(origContactRef);

问题在iOS8中,在此行中:CFRetain(origContactRef);
因为对象为空。

我该如何解决?

问候

最佳答案

如果contactID为-1,则以下其余语句将失败。

在这种情况下,-1表示找不到记录。

您需要随时检查错误,您不能仅仅假设每个方法调用都会成功。在这种情况下,第一个检查错误的地方是ABRecordGetRecordID语句。

Apple documentation:




#define kABRecordInvalidID -1

关于ios - 在iOS8中获取contactID时出错-崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26574833/

10-11 09:23