ios/c/addressbook:解析KabPersonalAddressProperty崩溃
我使用下面的代码从地址簿中检索不同的地址字段。对于名称和某些属性,它可以正常工作,但对于地址,它会崩溃。我怀疑地址是一个int而不是字符串,但是在文档中找不到任何东西来解释为什么它应该不同。如有任何建议,将不胜感激:ios/c/addressbook:解析KabPersonalAddressProperty崩溃,ios,addressbook,Ios,Addressbook,我使用下面的代码从地址簿中检索不同的地址字段。对于名称和某些属性,它可以正常工作,但对于地址,它会崩溃。我怀疑地址是一个int而不是字符串,但是在文档中找不到任何东西来解释为什么它应该不同。如有任何建议,将不胜感激: //This works: CFStringRef jobtitleRef = nil; jobtitleRef = ABRecordCopyValue(addressBookRecord, kABPersonJobTitleProperty);
//This works:
CFStringRef jobtitleRef = nil;
jobtitleRef = ABRecordCopyValue(addressBookRecord, kABPersonJobTitleProperty);
NSString *jobtitle = @"";
if (jobtitleRef!=nil) {
jobtitle =[jobtitle stringByAppendingString:(__bridge NSString *)jobtitleRef];
}
//But this crashes
CFStringRef addr1Ref = nil;
addr1Ref = ABRecordCopyValue(addressBookRecord, kABPersonAddressProperty);
NSString *addr1 = @"";
if (addr1Ref!=nil) {
addr1 = [addr1 stringByAppendingString:(__bridge NSString *)addr1Ref]; //crashes on this line
}
编辑:
在另一个问题中找到了答案:
ABMultiValueRef st = ABRecordCopyValue(person, kABPersonAddressProperty);
if (ABMultiValueGetCount(st) > 0) {
CFDictionaryRef dict = ABMultiValueCopyValueAtIndex(st, 0);
self.street.text = CFDictionaryGetValue(dict, kABPersonAddressStreetKey);
}
因为一个人可以有多个地址KabPersonalAddressProperty是多值属性ABMultiValueRef不是CfstringRef哪一行产生崩溃?请更具体一些,例如,张贴碰撞日志瓦迪安是正确的。请参见上文编辑中的答案