因此,我有一个服务clint类,该类具有一种称为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");
    }
     ............
}

最佳答案

从NSInvocationOperation类参考:


  NSInvocationOperation类是NSOperation的具体子类
  管理指定为的单个封装任务的执行
  调用。您可以使用此类来启动操作
  包括在指定对象上调用选择器。这个班
  实现非并行操作。


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

10-01 16:38