1

我正在尝试加快将设备上的所有联系人同步到我的应用程序的速度。目前它在同步联系人时阻塞了主线程。

我在 NSInvocationOperation 中添加了单个联系人设置,并将其添加到 NSOperationQueue。

我知道您只能在主线程中访问 UI。关于通讯录数据,您无法访问哪些内容?

4

1 回答 1

6

地址簿框架通常可以安全地从后台线程使用,但它们是陷阱。文档中提到了重要的警告:

重要的 ABAddressBookRef 实例不能被多个线程使用。每个线程必须创建自己的实例。

重要Record 对象不能安全地跨线程传递。相反,您应该传递相应的记录标识符。有关详细信息,请参阅“使用记录标识符”。

请注意,仅仅因为NSInvocationOperationare on the sameNSOperationQueue并不能保证它们将在同一个线程上执行。

于 2012-08-27T06:21:08.370 回答