2

私のアプリはiOS3.2で実行する必要があり、-addOperationWithBlockなどのメソッドは>4.0でのみ機能します。

しかし、NSOperationQueueはiOS 2.0以降で利用可能だったので、「古い方法」で試してみたいと思います。ブロックなしでNSOperationQueueを使用する方法の基本を示す便利なチュートリアルを知っている人はいますか?

4

3 に答える 3

6

呼び出し操作では非常に簡単です。これらは、オブジェクト パラメータ (オプション) を使用して特定のオブジェクトにメッセージを送信できるようにする操作です。

したがって、このメソッドを呼び出したい場合:

- (void)doSomething {

        NSLog (@"Did it!");
}

あなたはそれを実現するために次のようなことをすることができます:

// Get or create some queue
NSOperationQueue *someQueue = [NSOperationQueue mainQueue];

// create an invocation operation
NSInvocationOperation *invocationOp = [[NSInvocationOperation alloc]  initWithTarget:self
                                                                                selector:@selector(doSomething)
                                                                                 object:nil];

[someQueue addOperation:invocationOp]; // Add the operation to the queue

[invocationOp release];

それが役立つことを願っています。

于 2011-05-31T15:06:44.190 に答える
3

@Firoze Lafeer は NSInvocation 操作の例を示しましたが、独自の NSOperation サブクラスを使用することもできます。

公式ドキュメントには、使用できるすべてのタイプの操作の例が示されています。ブロックが利用可能であっても、より大きなタスクには NSOperation サブクラスを使用することをお勧めします。

于 2011-05-31T15:22:07.850 に答える
2

ここでかなり良いチュートリアルを見つけました。また、トピックを超えて、メインスレッドでデータをフェッチすることが常に良いとは限らない理由についての情報を提供します。

于 2011-08-15T10:54:23.513 に答える