저장@입에서 CFStringRef.호
-
11-12-2019 - |
문제
을 구하고 싶 firstName
고 lastname
.
NSLog(firstName);
인쇄 올바른 값에서 주소록하지만, _dossier.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;
}];
}
}
해결책
안 performBlock
당신이해야 할당 firstName
고 lastName
하기 _dossier
대신 새로 만든 dossier
체입니다.
다른 팁
이 라인:
firstName = (__bridge NSString*)ABRecordCopyValue(abPerson,
NSLog(firstName); kABPersonFirstNameProperty);
귀하의 NSLog
인터럽트의 문입니다.지 않으면 서식게 엉망이 정말로 나쁘다.
제휴하지 않습니다 StackOverflow