ABAddressBookRef
1 つのスレッドからのみアクセスできます。ABAddressBookRef
良いモデルは、メイン スレッドのほかに、バックグラウンドでスレッドを持つことだと思います。
使用中にスレッドが 1 つだけであることを確認するにはどうすればよいNSOperationQueue
ですか? 最大同時実行数を 1 に設定するだけでは、同じスレッドで実行されるとは限りません。
Web スレッドなど、他の固有のスレッドを使用する必要がありますか?
ABAddressBookRef
1 つのスレッドからのみアクセスできます。ABAddressBookRef
良いモデルは、メイン スレッドのほかに、バックグラウンドでスレッドを持つことだと思います。
使用中にスレッドが 1 つだけであることを確認するにはどうすればよいNSOperationQueue
ですか? 最大同時実行数を 1 に設定するだけでは、同じスレッドで実行されるとは限りません。
Web スレッドなど、他の固有のスレッドを使用する必要がありますか?
手動でスレッドを作成し、すべてのアドレス帳アクセスをそのスレッドにリダイレクトできます。
次のようなスレッドを作成します(ドキュメントから適応):
NSThread* myThread = [[NSThread alloc] initWithTarget:[MyThread new]
selector:@selector(myThreadMainMethod)
object:nil];
[myThread start]; // Actually create the thread
スレッドを有効にするには、スレッドのメイン メソッドに実行ループを実装する必要があることに注意してください。
その後、 's メソッドを使用して、このスレッドで何かを行うことができます。NSObject
performSelector:onThread:withObject:waitUntilDone:
ABAddressBookRef
この概念を実装するためのラッパー ライブラリであるRHAddressBookを次に示します。