Я пытаюсь найти способ изменить запись адресной книги, которая будет работать одинаково на всех ОС (начиная с версии 3.0, в любом случае) и правильно синхронизироваться с контактами Google / Outlook.
Я пытался написать новуюотправить данные по электронной почте в существующую запись и выписать ее обратно.Это работало нормально в течение нескольких дней при тестировании на iOS4, и я думал, что я дома и сухо, но я обнаружил, что на iOS 3.1.3 вызов ABAddressBookSave выдает ошибку базы данных SQLite, жалуясь на попытку создания повторяющихся записей:
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
Когда я попытался удалить старую запись и заменить ее на совершенно новую, вместо этого возникли дублирующие записи адресов электронной почты (я предполагаю, что это потому, что процесс синхронизации рассматривал ее как новую запись и пытался объединить их,возможно при синхронизации с Google)
В документации Apple («Руководство по программированию адресной книги для iPhone») приводятся примеры создания и удаления записей, но не частичного обновления.
Есть идеи?Все предложения с благодарностью приняты
Приветствия
Питер Джонсон
Растворимые приложения (www.surableapps.com)