Unable to Возвращает представление vCard указанного CNContacts

Попытка получить объект NSData с представлением vCard контакта, используя интерфейс ниже.

+ (NSData *)dataWithContacts:(NSArray *)contacts
                   error:(NSError * _Nullable *)error

Получил объект NSData при передаче одного CNContact на указанный выше интерфейс. Вот рабочий код

CNMutableContact * contact = [CNMutableContact new];
contact.middleName = @"Stalin";
contact.contactType = CNContactTypePerson;
contact.givenName = @"Gates";
contact.familyName = @"GemmyApps";
NSData *bufferedData = [CNContactVCardSerialization dataWithContacts:contact error:nil];

Невозможно получить объект NSData при передаче NSArray из CNContacts на указанный выше интерфейс. Вот код

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 (данные): свойство не запрашивалось при извлечении контакта.


person Stalin Pusparaj    schedule 16.04.2016    source источник


Ответы (1)


таким образом вы можете получить данные, передав массив,

CNMutableContact * contact = [CNMutableContact new];
contact.middleName = @"Stalin";
contact.contactType = CNContactTypePerson;
contact.givenName = @"Gates";
contact.familyName = @"GemmyApps";

CNMutableContact *contact2 = [CNMutableContact new];
contact.middleName = @"Stalin1";
contact.contactType = CNContactTypePerson;
contact.givenName = @"Gates1";
contact.familyName = @"GemmyApps1";

NSArray *contactArr = [NSArray arrayWithObjects:contact,contact2,nil];

NSData *bufferedData = [CNContactVCardSerialization dataWithContacts:contactArr error:nil];



NSLog(@"data length %d",bufferedData.length);
NSLog(@"contact is %@",contact);
person Ketan Parmar    schedule 16.04.2016