尝试使用以下接口获取具有联系人的 vCard 表示的 NSData 对象。
+ (NSData *)dataWithContacts:(NSArray *)contacts
error:(NSError * _Nullable *)error
将一个 CNContact 传递给上述接口时得到一个 NSData 对象。这是工作代码
CNMutableContact * contact = [CNMutableContact new];
contact.middleName = @"Stalin";
contact.contactType = CNContactTypePerson;
contact.givenName = @"Gates";
contact.familyName = @"GemmyApps";
NSData *bufferedData = [CNContactVCardSerialization dataWithContacts:contact error:nil];
将 CNContacts 的 NSArray 传递给上述接口时,无法获取 NSData 对象。这是代码
CNContactStore* contactStore = [[CNContactStore alloc]init];
NSArray * keysToFetch =@[CNContactEmailAddressesKey, CNContactPhoneNumbersKey, CNContactFamilyNameKey, CNContactGivenNameKey, CNContactPostalAddressesKey];
NSMutableArray *arrFetchedcontact = [contactStore unifiedContactsMatchingPredicate:[CNContact predicateForContactsInContainerWithIdentifier: @[contactStore.defaultContainerIdentifier][0]] keysToFetch:keysToFetch error:nil];
NSData *bufferedData = [CNContactVCardSerialization dataWithContacts:arrFetchedcontact error:nil];
lldb 消息:将联系人写入 vCard(数据)时出现异常:获取联系人时未请求属性。