iOS-Adressbuch - Wie weiß man, welcher Kontakt hinzugefügt / bearbeitet / gelöscht wurde?

9

Meine App muss die Kontakte eines Nutzers auf unseren Servern speichern (natürlich mit der Zustimmung des Nutzers.) Eine der Anforderungen besteht darin, alle Änderungen im Adressbuch des Geräts (Hinzufügen / Bearbeiten / Löschen) auf dem Server widerzuspiegeln.

Gibt es einen einfachen Weg / Best Practice, um zu bestimmen, welche Adressbuchkontakte vor dem Neustart einer Anwendung geändert wurden?

Alles, was ich sehen kann, sind Callback-Methoden, um eine Anwendung über eine Änderung im Adressbuch zu benachrichtigen. Es scheint jedoch keine dokumentierten Möglichkeiten zu geben, welche Kontakte hinzugefügt, bearbeitet oder gelöscht wurden.

Ich denke gerade daran, die neue Liste der Kontakte manuell mit einer auf dem Gerät gespeicherten zu vergleichen und dann sowohl die Anwendung als auch den Server der Änderungen zu aktualisieren. Aber ich denke, dass es zu viel ist, wenn der Benutzer eine große Anzahl von Kontakten hat.

Danke!

    
maignacio 17.09.2012, 08:16
quelle

2 Antworten

2

Sie müssen Ihre Klasse bei der ABAddressBookRegisterExternalChangeCallback übergeben ein ABAddressBookRef und den Rückruf (" addressBookDidChange "in meinem Beispiel)

%Vor%     
andreacipriani 17.08.2014 09:44
quelle
1

Sehen Sie sich libsqlite3.dylib an und erstellen Sie eine SQL-Datenbank, die auf die Flatfiles zugreift, die für alle benötigten Eigenschaften generiert wurden, und dann Ihre Datenbank regelmäßig mit den Geräten der Benutzer vergleicht. Stellen Sie sicher, dass beide Datenbanken nur das Nötigste benötigen, das Sie aus dem abaddressbook Framework benötigen.

Beispiel iOS-Projekt mit sqlite3-Bibliothek ist hier:

Ссылка

& amp; Details dazu finden Sie mit ABAddressbook für die mehrwertigen Eigenschaften des Kontakts hier:

Ссылка

    
ChrisHaze 03.06.2014 13:22
quelle

Tags und Links