在iOS8中获取contactID时出错-崩溃
我一直在使用iOS应用程序,当我需要从手机获取联系信息时,这是我的代码:在iOS8中获取contactID时出错-崩溃,ios,crash,ios8,contacts,Ios,Crash,Ios8,Contacts,我一直在使用iOS应用程序,当我需要从手机获取联系信息时,这是我的代码: ABRecordID contactID = ABRecordGetRecordID(contact); ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(nil, nil); ABRecordRef origContactRef = ABAddressBookGetPersonWithRecordID(addressBook, contactID)
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
语句
从:
ABRecordGetRecordID
返回值当记录存在于中时记录的唯一ID
地址簿数据库
当记录尚未保存到数据库时,kABRecordInvalidID
及
#define kABRecordInvalidID-1
contactID
和addressBook
是否良好?这是结果:contactID=-1 addressBook=origContactRef=(null)好的,谢谢,但是ios8和ios7之间有什么区别?因为在ios7中工作正常。不同的联系人或联系人详细信息?为什么现在会失败,联系人中是否有匹配项?通讯录好吗,也是零吗?真正检查代码和每个方法调用的结果。如果所有方法调用都可能失败,请检查它们是否失败。尽早发现错误。