Comment être notifié lors d'un contact a changé d'événement dans IOS?

Je veux être averti quand il y a un événement d'insertion / mise à jour aux contacts de l'iPhone.

Est-il possible d'get une notification à mon application concernant un événement spécifique de contact modifié qui s'est produit?

Juste un débutant … pour IOS Swift.

Je ne m'attends pas à un code source complet. Je veux juste savoir si c'est possible ou non et aussi indice.

Merci d'avance.

Dans iOS, il pourrait être fait en utilisant –

Enregistrer le notificateur d'appel de modification externe

ABAddressBookRef ntificationaddressbook = ABAddressBookCreate(); ABAddressBookRegisterExternalChangeCallback(ntificationaddressbook, MyAddressBookExternalChangeCallback, self); 

Mettre en œuvre le callback –

 void MyAddressBookExternalChangeCallback (ABAddressBookRef ntificationaddressbook,CFDictionaryRef info,void *context) { // called when there is any change in AddressBook } 

Pour plus de détails, vous pouvez consulter ce lien

Détecter ce qui a été modifié à partir de ABAddressBookRegisterExternalChangeCallback

Depuis iOS 9, vous pouvez save votre class pour observer CNContactStoreDidChangeNotification

 NSNotificationCenter.defaultCenter().addObserver( self, selector: #selector(addressBookDidChange), name: NSNotification.Name.CNContactStoreDidChange, object: nil) 

Et alors:

 @objc func addressBookDidChange(notification: NSNotification){ //Handle event here... } 

comme indiqué dans Référence du cadre de contacts

Après l'exécution réussie d'une sauvegarde, le magasin de contacts envoie une notification CNContactStoreDidChangeNotification au centre de notification par défaut. Si vous mettez en cache des objects de cadre Contacts, vous devez les réaménager, soit à l'aide de leurs identificateurs, soit avec les prédicats utilisés pour les extraire à l'origine, puis libérer les objects mis en cache. Notez que les objects mis en cache sont périmés, mais pas invalides.

MODIFIER:

Notez que les frameworks de l'interface user du carnet d'adresses et du carnet d'adresses sont désormais obsolètes.

Vous pouvez implémenter KeyValue Observers observevalueforkeypath pour être averti du changement d'état des éléments sélectionnés