NSInvocationOperation -不调用不同线程上的方法



我有一个服务客户端类,它有一个叫做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");
    }
     ............
}

来自NSInvocationOperation类引用:

NSInvocationOperation类是NSOperation的一个具体子类来管理指定为的单个封装任务的执行一个调用。您可以使用这个类来启动一个操作由调用指定对象上的选择器组成。这门课实现非并发操作

这意味着为了异步执行操作,您需要将其添加到操作队列中。

最新更新