我一直在iOS应用程序中工作,当我需要从手机获取联系信息时,这是我的代码:
ABRecordID contactID = ABRecordGetRecordID(contact);
ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(nil, nil);
ABRecordRef origContactRef = ABAddressBookGetPersonWithRecordID(addressBook, contactID);
CFRetain(origContactRef);
...
...
...
CFRelease(origContactRef);
问题出在iOS8中,在这一行:
CFRetain(origContactRef);
因为该对象为空。
我该如何解决?
问候语。
答案 0 :(得分:0)
如果contactID为-1,则以下其余语句将失败。
在这种情况下,-1表示找不到记录。
您需要在发生错误时检查错误,您不能只假设每个方法调用都会成功。在这种情况下,检查错误的第一个位置是ABRecordGetRecordID
语句。
ABRecordGetRecordID
返回值记录中存在的记录的唯一ID 地址簿数据库。
当记录尚未保存到数据库时的kABRecordInvalidID。
和
#define kABRecordInvalidID -1