Идентификатор контакта возвращается с суффиксом ABPerson

Я добавляю контакт, используя Native CNContactViewController, и после сохранения контакта возвращает идентификатор контакта с суффиксом ":ABPerson", и при перекрестной проверке в списке контактов появляется тот же контакт с другим идентификатором.

Кто-нибудь знает, как получить фактический контактный идентификатор?

Код для создания:

- (IBAction)didSelectedAddContact:(id)sender {
CNMutableContact *contact =  [CNMutableContact new];

CNContactViewController *contactController = [CNContactViewController viewControllerForNewContact:contact];

NSLog(@"contact id : %@", contact.identifier);

contactController.allowsEditing = true;
contactController.allowsActions = true;

contactController.delegate = self;
[self.navigationController pushViewController:contactController animated:YES];    
}

Делегированный обратный вызов:

- (void)contactViewController:(CNContactViewController *)viewController didCompleteWithContact:(nullable CNContact *)contact{
_contact = contact;

    [viewController.navigationController popViewControllerAnimated:YES];
}

Ниже функция возвращает ноль:

- (CNContact*) getContactFromStoreForIdentifier:(NSString*) identifier
{
    CNContact *updatedContact = nil;

   id descriptor = [CNContactViewController descriptorForRequiredKeys];

CNContactStore *store = [CNContactStore new];

NSError *error;

updatedContact = [store unifiedContactWithIdentifier:identifier
                                         keysToFetch:@[descriptor]
                                               error:&error];
// Found?
if (updatedContact == nil)
{
    if (error != nil)
    {

    }
}
 return updatedContact; }

@Parameter: идентификатор объекта CNContact, полученный от didCompleteWithContact: делегат обратного вызова.

1 ответ

Вы должны установить contactStore для viewController.

CNContactStore *store = [CNContactStore new];
contactController.contactStore = store;

Если не установлено это свойство, то добавление контакта в контакты пользователя отключено.

источник: https://developer.apple.com/reference/contactsui/cncontactviewcontroller/1616912-contactstore

Другие вопросы по тегам