2

我正在使用 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".

我对应用程序开发很陌生,如果我提供的信息足够,请告诉我

谢谢

4

1 回答 1

0

如果你想在之后有一个 ABPerson(什么是可取的),使用:

// Assuming NSString *card exists already.
ABPerson *person = [[[ABPerson alloc] initWithVCardRepresentation:[card dataUsingEncoding:NSUTF8StringEncoding] autorelease];
于 2012-05-30T17:44:20.603 回答