我的应用程序有一个NSOperation,打开iPhone地址簿,循环通过用户的联系人,并将姓名和电话号码复制到核心数据实体。大多数情况下,这个工作没有问题,但很少看起来地址簿被破坏,所有联系人都丢失了。我没有对地址簿进行任何写入,所以不确定这是怎么发生的。它不会抛出堆栈跟踪或崩溃应用程序。我只是在我再次运行我的应用程序后才注意到它。我看到在日志中下面...迭代通过iPhone通讯录导致地址簿的SQL数据库损坏
CPSqliteStatementSendResults:文件被加密或不是数据库 checkResultWithStatement:文件被加密或不适合SELECT UID,标识符(SELECT值FROM ABMultiValueLabel WHERE ROWID =标签数据库),值FROM ABMultiValue WHERE record_id =? AND属性+ 0 =?;
...并且地址簿是空的。
是否有可能通过读取地址本而不是正确地关闭地址簿?
地址簿是否也停止为'Contacts'应用程序工作,或者这个问题仅与您的应用程序隔离? – tidwall
发生这种情况后,通讯录中的地址簿为空。联系人应用运行正常,只有零个条目。我并没有编辑我的代码中的任何地址簿,这让我感到莫名其妙。 –
它在模拟器和设备上都发生过吗? – shannoga