バックグラウンド
私はMac用のアプリケーションを構築することに苦しんでいる開発者です。ユキヒョウを手に入れようとしています。今まで私はLeopardをベースに構築してきました。私はCocoaの開発を約1年しか行っていませんが、それほど集中的ではありません。
特にSnowLeopardとGrandCentralDispatchについてたくさん読んだことがあります。ブロックを使用していることは承知していますが、ブロックの仕組みやGrandCentralDispatchの仕組みについては詳しく説明していません。
私の質問
Snow Leopardの新しいマルチスレッド機能を最大限に活用しながら、Snow LeopardとLeopardの両方に対して1つのコードベースを開発するにはどうすればよいですか?
NSOperationQueue
私の本能は、コードでGCDを直接処理することではありませんが、キューに入れる必要がある場合は、NSOperationQueueを使用してください。SnowLeopardのMike Ashes Q&Aセッションから、NSOperationQueueはGCDとクラッシャーを最大限に活用していることがわかりました。 Leopardで発見されたものが修正されました。
手動スレッド管理
ただし、特定のバックグラウンドスレッドの管理に関しては、Leopardの機能を壊すことなく、Snow Leopardの使いやすいスレッド管理機能を利用する方法はありますか?または、OSごとに異なるターゲットを設定し、それぞれに異なるクラスを設定することをお勧めしますか?これは私には、メンテナンスの悪夢のように思えます。
あるいは、アプリがSnow Leopard用に完全に最適化されていない状態で生活し、それに固執する必要があるかもしれません+(void)detachNewThreadSelector:toTarget:withObject:
。
人々はどう思いますか?