我正在尝试找到一种方法来修改地址簿记录,该记录在所有操作系统(无论如何都是 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 文档(“Address Book Programming Guide for iPhone”)提供了创建和删除条目的示例,但不提供部分更新的示例。
有任何想法吗?感谢所有建议
干杯
彼得·约翰逊
可溶性应用 (www.solableapps.com)