Ios6 从CFStringRef保存NSString。弧
我正在尝试保存Ios6 从CFStringRef保存NSString。弧,ios6,abaddressbook,core-foundation,Ios6,Abaddressbook,Core Foundation,我正在尝试保存firstName和lastname。 NSLog(名字)从通讯簿打印正确的值,但\u档案。firstName为空。 图像正在正确保存 ABAddressBookRef addressBook = ABAddressBookCreate(); for (TKAddressBook *ab in contacts) { NSNumber *personID = [NSNumber numberWithInt:ab.recordID]; ABRecordID abRe
firstName
和lastname
。
NSLog(名字)代码>从通讯簿打印正确的值,但\u档案。firstName
为空。
图像正在正确保存
ABAddressBookRef addressBook = ABAddressBookCreate();
for (TKAddressBook *ab in contacts) {
NSNumber *personID = [NSNumber numberWithInt:ab.recordID];
ABRecordID abRecordID = (ABRecordID)[personID intValue];
ABRecordRef abPerson = ABAddressBookGetPersonWithRecordID(addressBook, abRecordID);
NSString* firstName = nil;
NSString* lastName = nil;
// Check person image
UIImage *personImage = nil;
if (abPerson != nil && ABPersonHasImageData(abPerson)) {
firstName = (__bridge NSString*)ABRecordCopyValue(abPerson,
kABPersonFirstNameProperty);
NSLog(firstName);
lastName = (__bridge NSString*)ABRecordCopyValue(abPerson,
kABPersonLastNameProperty);
CFDataRef contactThumbnailData = ABPersonCopyImageDataWithFormat(abPerson, kABPersonImageFormatThumbnail);
personImage = [UIImage imageWithData:(__bridge NSData*)contactThumbnailData];
CFRelease(contactThumbnailData);
[_document.managedObjectContext performBlock:^() {
Dossier *dossier = [NSEntityDescription insertNewObjectForEntityForName:@"Dossier"
inManagedObjectContext:_document.managedObjectContext];
_dossier.firstName = firstName;
_dossier.lastName = lastName;
dossier.photo = personImage;
}];
}
}
在这方面:
firstName = (__bridge NSString*)ABRecordCopyValue(abPerson,
NSLog(firstName); kABPersonFirstNameProperty);
您的NSLog
会中断语句。除非格式真的搞砸了 在performBlock
中,您已将名字和姓氏指定给\u档案
,而不是新创建的档案
对象。什么是\u档案
?不应该是dossier.firstName=firstName;dossier.lastName=lastName代码>?\u档案是UIManagedDocument我认为这对解决问题没有帮助,但您应该在ABRecordCopyValue
的返回值上使用\u桥接传输
(或CfBridgegRelease
)。如果NSLog(@“%@”,firstName,lastName),会发生什么情况
在块内?因此您希望在新创建的docsier*docsier
对象中保存personImage
,但是UIManagedDocument*\u docsier
中的名字和lastName
是另一个对象?