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…
方法,使其同步。