iOS - CNContactStoreDidChangeNotification уведомления детали несоответствия - PullRequest
0 голосов
/ 28 ноября 2018

Как получить последние изменения в книге контактов iPhone

Я собираюсь интегрировать Contacts Framework в мое приложение для iOS и хотел бы получать уведомления об изменении контакта (добавление / редактирование полей в контакте) извне(другим приложением или пользователем).Я нашел CNContactStoreDidChangeNotification и задаюсь вопросом, принесет ли он в значимой форме, что именно изменилось в карточке контакта и / или в информации о том, какой контакт был изменен.

Не могу найти его здесь

1 Ответ

0 голосов
/ 28 ноября 2018

В данный момент CNContactStoreDidChangeNotification не дает изменений.Так что, если у вас есть некоторые кэшированные контакты, вы должны повторно получить их, когда приходит уведомление.

-(void)registerForCNContactStoreDidChangeNotification {
   if (!self.hasRegisteredForNotifications) {
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(storeDidChange:) name:CNContactStoreDidChangeNotification  object:nil];
        self.hasRegisteredForNotifications = YES;
   }
}

- (void)deviceContactsDidChange:(NSNotification *)notification {
// notification.userInfo can be nil

// need to fetch all contacts with enumerateContactsWithFetchRequest to get all contacts or
// refresh the cached contacts with unifiedContactsMatchingPredicate
}

Apple говорит:

Если вы кэшируете выбранные контакты, группы или контейнеры, вам необходимо повторно получить эти объекты (и освободить старые кэшированные объекты), когда публикуется CNContactStoreDidChangeNotification.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...