Как получить 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 
  • Что нужно сделать разработчику iOS перед чистой установкой Lion?
  • Swift: как открыть новое приложение, когда uibutton прослушивается
  • Проверьте, нет ли даты в двух днях на iPhone
  • Отрицательный цвет текста относительно фонового изображения
  • iOS: значения для CIFilter (Hue) из Photoshop
  • GLSL atan на iPhone 6 Plus дает неправильный результат
  • Расчеты с плавающей точкой iPhone App при выпуске в магазин приложений.
  • iOS: представление контроллера вида в ландшафте прямо из контроллера вида, поддерживающего только портретный режим после поворота iphone
  • UIButton как переключатель
  • NSDateFormatter возвращает неожиданные результаты
  • Как получить низкую задержку отправки данных движения между устройствами iOS и что я должен ожидать?
  • Interesting Posts

    iMessaged-приглашения для GameCenter для iOS 10

    Кнопка покупки и восстановления в приложении: отдельный продукт – нерасходуемый

    Можно использовать DapperExtensions с Xamarin и AOT

    В отчете Google Analytics идут визиты, но нет данных для просмотра PageViews

    Используйте что-то другое, кроме OS X Finder, чтобы закрепить приложение iPhone для отправки

    Оператор перегрузки эквивалентности (==) для пользовательского класса в Swift

    Iphone Facebook IOS Загрузка изображений, занимающих слишком много времени?

    Гироскоп и акселерометр в Apple Watch

    Пользовательские переменные NSExpression внутри выражения

    Проверьте, поддерживается ли 3D-сенсор и включено ли его на устройстве iOS9

    В чем смысл входа в область локализации локализации локализации в info.plist?

    Индикатор активности не отображается

    Отображение пользовательских нескольких контактов показывает неправильные контакты для местоположений

    Синхронный Vs асинхронный на iPhone

    Изменение рамки кадра во время выполнения

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