我正在使用XCode 4.2开发iPhone应用程序。在应用程序的一部分中,我将获得VCard作为NSString
我在nitWithVCardRepresentation
中发现了这个函数,我认为它比一个一个地解析数据要容易得多(即先得到名字然后再得到姓氏等,但是我很难在代码中实现它。
我有AddressBook
和AddressBookUI
框架,但我尝试使用此代码,但找不到确切的方法
-(IBAction)Add{
// I have a NSString *card defined somewhere else
ABAddressBookRef *iPhoneAddressBook = ABAddressBookCreate();
ABRecordRef *contact = ABPersonCreatePeopleInSourceWithVCardRepresentation(iPhoneAddressBook, (__bridge_retained CFStringRef) card);
CFRelease(contact);
CFRelease(iPhoneAddressBook);
}
当我编译时,它崩溃了
ABRecordRef *contact = ABPersonCreatePeopleInSourceWithVCardRepresentation(iPhoneAddressBook, (__bridge_retained CFStringRef) card);
我在@autoreleasepool
中收到以下绿色错误Thread1:Program Received Signal "SIGABRT".
我对Apps开发非常陌生,请告诉我我提供的信息是否足够
谢谢
最佳答案
如果您以后想要一个ABPerson(建议),请使用:
// Assuming NSString *card exists already.
ABPerson *person = [[[ABPerson alloc] initWithVCardRepresentation:[card dataUsingEncoding:NSUTF8StringEncoding] autorelease];