Ios 在操作主方法中使用块

Ios 在操作主方法中使用块,ios,objective-c,block,nsoperation,Ios,Objective C,Block,Nsoperation,我在NSOperation中使用块。我的NSOperation的main方法如下所示: - (void) main { [self callMethodOfALiraryUsingCompletionBlock:^() { //this method takes time to execute, will call this block when done }]; } 我希望我的NSOperation在块内的操作完成时终止。目前,它直接返回,在执行块内的内容之前

我在
NSOperation
中使用块。我的
NSOperation
main
方法如下所示:

- (void) main {

    [self callMethodOfALiraryUsingCompletionBlock:^() {
       //this method takes time to execute, will call this block when done
    }];
}

我希望我的
NSOperation
在块内的操作完成时终止。目前,它直接返回,在执行块内的内容之前。。。你知道我如何解决这个问题吗?

在你的问题中,有一个可能的提纲可以帮助你:

  • 创建信号量(
    dispatch\u semaphore\u Create
  • 异步执行库代码(
    dispatch\u async
  • 让库代码的完成块向信号量发送信号
  • 让主方法等待信号量

HTH

您正在调用一个接受块的方法,那么“callMethodWithBlock”在做什么呢?。也许你应该在main方法中编写你想要执行的代码?使用Thx如何?为了你的答案,我编辑了我的问题。调用的方法需要很长时间,我无法访问它,因为它来自库。该块只是在方法完成作业时调用的“完成”块。您的问题没有通用的解决方案。您正在使用的库可能有特定的解决方案,所以不要让我们玩猜谜游戏。告诉我们您正在使用的库,并向我们展示真正的代码。您没有告诉我们任何有用的内容。但我猜您正在进行一些异步处理,这就是
main
返回速度如此之快的原因。重构
callMethodOfALibrary…
方法,使其同步。