0

だから私はfetchと呼ばれるメソッドを持つサービスクリントクラスを持っています。NSInvocationOperationを使用してこのメ​​ソッドを呼び出しています。スレッドを確認すると、メインスレッドのmthodが呼び出されているようです。NSInvocationOperationを使用して非同期で実行することの全体的なポイントではありませんか?

呼び出し方法

ServiceClient *client = [[ServiceClient alloc] init];
NSInvocationOperation *invocatopnOperation = [[NSInvocationOperation alloc] initWithTarget:client selector:@selector(fetch) object:nil];
[invocatopnOperation start];

サービスクライアントのメソッド

- (void)fetch
{
    if ([[NSThread currentThread] isEqual:[NSThread mainThread]])
    {
        NSLog(@"NOOOOOO");
    }
     ............
}
4

1 に答える 1

1

NSInvocationOperation クラス参照から:

NSInvocationOperation クラスは、呼び出しとして指定された単一のカプセル化されたタスクの実行を管理する NSOperation の具体的なサブクラスです。このクラスを使用して、指定されたオブジェクトでセレクターを呼び出す操作を開始できます。このクラスは、非同時操作を実装します

これは、操作を非同期で実行するには、操作キューに追加する必要があることを意味します。

于 2012-01-03T16:13:41.570 に答える