0

所以我有一个服务 clint 类,它有一个名为 fetch 的方法。我正在使用 NSInvocationOperation 调用此方法。当我检查线程时,它似乎正在调用主线程上的方法。使用 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 回答