2012-08-27 66 views
1

我想加快同步聯繫人上的所有聯繫人到我的應用程序。目前,在同步聯繫人時阻塞主線程。多線程聯繫人同步

我在NSInvocationOperation中添加了個人聯繫人設置並將其添加到NSOperationQueue。

我知道你只能訪問主線程中的UI。關於地址簿數據,您無法訪問哪些內容?

回答

6

地址簿框架通常可以安全地從後臺線程使用,但它們都是缺陷。最重要的限制條件是在documentation提到:

重要 ABAddressBookRef的實例不能被多個線程使用。每個線程都必須創建自己的實例。

重要記錄對象不能在線程之間安全地通過。相反,您應該傳遞相應的記錄標識符。有關更多信息,請參閱「使用記錄標識符」。

注意,僅僅因爲NSInvocationOperation在同一NSOperationQueue並不能保證他們會在同一線程上執行。

+0

好的,謝謝你的回覆。我會放棄這一點,並確保ABAddressBookRef只被其關聯的線程使用。 – Bassem