首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >迭代iPhone地址簿导致地址簿sql db损坏

迭代iPhone地址簿导致地址簿sql db损坏
EN

Stack Overflow用户
提问于 2011-11-25 12:50:47
回答 1查看 464关注 0票数 4

我的应用程序有一个NSOperation,可以打开iphone地址簿,遍历用户的联系人,并将姓名和电话号码复制到核心数据实体中。我没有向地址簿写任何东西,所以我不确定这是怎么发生的。它不会抛出堆栈跟踪或应用程序崩溃。我只是在再次运行我的应用程序后才注意到它。我在日志中看到了以下内容...

CPSqliteStatementSendResults:文件已加密或不是数据库checkResultWithStatement:文件已加密或不是SELECT UID、identifier、(SELECT value FROM ABMultiValueLabel WHERE ROWID = label)、value FROM ABMultiValue WHERE record_id =?和property+0 = ?;

...and地址簿为空。

EN

回答 1

Stack Overflow用户

发布于 2011-12-02 10:12:25

这件事以前就发生在我身上。

您正在从两个不同的线程访问同一AB实例,而地址簿不是线程安全的。

您需要使用ABAddressBookCreate()来获取一个实例,以便在每个单独的线程上使用。

来自文档:Important: Instances of ABAddressBookRef cannot be used by multiple threads. Each thread must make its own instance.

你可以阅读更多关于它的here

我已经确认,如果您从多个线程读取数据,数据库将会损坏,用户将失去他们所有的联系人。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8264919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档