3

iOS SDK 中是否有任何框架/库可用于读取/解析 vCard 格式的数据?我在 NSString 中接收 vcard 格式的数据,我必须解析它。谷歌了很多,但还没有找到解决方案。

BEGIN:VCARD
VERSION:2.1
N:LastName;FirstName;MiddleName;Prefix;Sufix
ADR;TYPE=HOME: postbox;street2;street1;city;state;zip;country
BDAY:2010-08-19
END:VCARD
4

2 回答 2

6

我确实为您找到了一些解决方案...

看看下面的链接...

1)想要现成的示例代码==>点击这里

2)写入 Vcard==>点击这里

与您相关的代码:

ABAddressBookRef addressBook = ABAddressBookCreate(); // create address book record 
ABRecordRef person = ABPersonCreate(); // create a person  

NSString *phone = @"0123456789"; // the phone number to add  

//Phone number is a list of phone number, so create a multivalue  
ABMutableMultiValueRef phoneNumberMultiValue = ABMultiValueCreateMutable(kABPersonPhoneProperty); 
ABMultiValueAddValueAndLabel(phoneNumberMultiValue ,phone,kABPersonPhoneMobileLabel, NULL);

ABRecordSetValue(person, kABPersonFirstNameProperty, @"FirstName" , nil); // first name of the new person 
ABRecordSetValue(person, kABPersonLastNameProperty, @"LastName", nil); // his last name 
ABRecordSetValue(person, kABPersonPhoneProperty, phoneNumberMultiValue, &anError); // set the phone number property 
ABAddressBookAddRecord(addressBook, person, nil); //add the new person to the record

ABRecordRef group = ABGroupCreate(); //create a group 
ABRecordSetValue(group, kABGroupNameProperty,@"My Group", &error); // set group's name 
ABGroupAddMember(group, person, &error); // add the person to the group         
ABAddressBookAddRecord(addressBook, group, &error); // add the group   

ABAddressBookSave(addressBook, nil); //save the record  

CFRelease(person); // relase the ABRecordRef  variable 

3)导入 vCard 示例代码==>点击这里

4)创建自定义解析器 ==>点击这里

于 2013-09-24T09:41:13.447 回答
4

OS X v10.11 和 iOS 9 引入了CNContactVCardSerialization,这使得解析 VCard 变得轻而易举。

于 2016-01-09T09:20:33.207 回答