Как получить RecordID от CNContactStore ios

Это мой код для MutableArray к MutableArray устройства и сохранения в MutableArray .

Но мне нужно получить recordID для всех контактов индивидуально и сохранить в тот же массив для дальнейшего использования. (Например, чтобы удалить Контакты с помощью recordId ).

Пожалуйста, помогите мне, я застрял в течение 4 дней.

 [contactStore enumerateContactsWithFetchRequest:request error:nil usingBlock:^(CNContact* __nonnull contact, BOOL* __nonnull stop){ if( contact.phoneNumbers) phoneNumber = [[[contact.phoneNumbers firstObject] value]]; if( contact.emailAddresses) emailAddress = [[contact.emailAddresses firstObject] value]; contactValue=[[NSMutableDictionary alloc] init]; [contactValue setValue:phoneNumber ?:@"" forKey:@"phoneNumber"]; [contactValue setValue:emailAddress ?:@"" forKey:@"emailAddress"]; [contactValue setObject:contact.identifier forKey:@"phoneIdentifier"]; [contactValue setObject:contact.givenName ?:@"" forKey:@"firstName"]; [contactValue setObject:contact.familyName ?:@"" forKey:@"lastName"]; [_totalContact addObject:contactValue]; }] 

2 Solutions collect form web for “Как получить RecordID от CNContactStore ios”

Из вашего утверждения вопроса я понимаю, что вы хотите delete контакт из контактной книги на основе identifier этого контакта . Когда у вас есть identifier это все, что вам нужно сделать:

 - (void)deleteContactWithIdentifier:(NSString *)identifier { NSArray *keys = @[CNContactGivenNameKey, CNContactPhoneNumbersKey, CNContactEmailAddressesKey, CNContactIdentifierKey]; CNMutableContact *contact = [[store unifiedContactWithIdentifier:identifier keysToFetch:keys error:nil] mutableCopy]; NSError *error; CNSaveRequest *saveRequest = [[CNSaveRequest alloc] init]; [saveRequest deleteContact:contact]; [store executeSaveRequest:saveRequest error:&error]; } 

Используйте это простое расширение, если вам действительно нужно прочитать recordID (для старого API).

recordID всегда выбирается.

Этот код никогда не отправляется в App Store. Он использует частный API!

CNContact+PrivateExtension.h :

 NS_ASSUME_NONNULL_BEGIN @interface CNContact (PrivateExtension) @property (readonly) NSNumber *privateRecordID; @end NS_ASSUME_NONNULL_END 

CNContact+PrivateExtension.m :

 @implementation CNContact (PrivateExtension) - (NSNumber *)privateRecordID { return [self valueForKey:@"recordID"]; } @end 
  • Повторить UILocalNotification в определенный день
  • Как я могу форматировать дату в Objective-C, подобную библиотеке jquery.timeago?
  • Инструменты, Target Не удалось выполнить: Удаленное исключение: «Не удалось получить задачу для pid»
  • WebView не работает правильно при изменении ориентации
  • Динамическая высота UITableViewCell в iOS 7 и iOS 8 невозможна
  • Расстояние до «точки интереса» в автофокусировке iphone
  • Исключение при извлечении пользовательских данных parse.com в iOS 8 Today Extension
  • Локализовать имя приложения iOS в Swift
  • iOS японский код ввода почтового кода
  • Получить контакты, отсортированные по Модифицированная дата iOS
  • Синтаксис указателя NSLog
  • Как проверить доступность сервера
  • Interesting Posts

    XCode 4.5 дает мне файл «SenTestingKit / SenTestKit.h» не найден, но работает в версии 4.4.1

    На лету PVRTC-сжатие на iOS

    iOS – Раскадровка – Делегат для поп-музыки

    Получите определяемый раскладкой UINavigationController из AppDelegate

    Есть ли более быстрый способ получить конкретный объект управления в Core Data, чем запрос на выборку?

    Любое любопытное предупреждение о UITextView

    Искаженная (роботизированная) аудиозапись на iOS с использованием AudioQueue

    Ошибка Haxe / NME на устройствах iOS после обновления версии AIR

    После сбоя xcode некоторые кнопки имеют либо пустые заголовки, либо частично усечены

    MPMoviePlayerController и базовый сервер HLS Back-сервера

    UIButton не отвечает после анимации

    Как проложить маршрут между двумя адресами, используя новые карты iOS 6.0?

    Как встраивать видеоконтент с сайта новостей в приложение iOS?

    Сегодня Widget не имеет контента на устройстве iOS 8

    Objective c – передать значение обратной строки с помощью делегата

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.