Ich versuche eine Möglichkeit zu finden, einen Adressbucheintrag zu ändern, der auf allen Betriebssystemen (auf jeden Fall nach 3.0) gleich funktioniert und korrekt mit Google Kontakte/Outlook synchronisiert wird.SQLite-Fehler beim Aktualisieren des Adressbuchs
Ich habe versucht, die neuen E-Mail-Daten in den bestehenden Datensatz zu schreiben und es wieder heraus zu schreiben. Dies funktionierte für mehrere Tage beim Testen auf iOS4, und ich dachte, ich wäre zu Hause und trocken, aber ich fand, dass unter iOS 3.1.3 der ABAddressBookSave-Aufruf einen SQLite-Datenbankfehler auslöst, der sich über das Erstellen doppelter Einträge beschweren möchte:
CPSqliteStatementPerform: constraint failed for INSERT INTO ABPerson (ROWID, First, Last, Middle, Organization, Kind, Nickname, Prefix, Suffix, FirstSort, LastSort, CreationDate, ModificationDate, CompositeNameFallback, StoreID, FirstSortSection, LastSortSection, FirstSortLanguageIndex, LastSortLanguageIndex) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?); CPSqliteStatementReset: PRIMARY KEY must be unique
Wenn ich versuchte, den alten Eintrag zu löschen und stattdessen durch einen neuen Eintrag zu ersetzen, führte dies zu doppelten E-Mail-Adresseinträgen (ich nehme an, dass der Synchronisierungsprozess dies als neuen Datensatz ansah und versuchte, sie zu verschmelzen, vielleicht wenn Synchronisierung mit Google)
Die Apple-Dokumentation ("Adressbuch-Programmierhandbuch für iPhone") enthält Beispiele zum Erstellen und Löschen von Einträgen, jedoch nicht zum teilweisen Aktualisieren.
Irgendwelche Ideen? Alle Vorschläge erhalten dankbar
Prost
Peter Johnson
Lösliche Apps (www.solubleapps.com)
bearbeitet, um hinzuzufügen, dass der Absturz auf 3.1.3 war während ABAddressBookSave –