2013-12-10 38 views
-1

我在NSOperation中使用块。我NSOperationmain方法是这样的:在NSOperation主要方法中使用块

- (void) main { 

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

我想我NSOperation终止时,里面有什么块完成。目前,它在块内部执行之前直接返回......任何想法如何解决这个问题?

在你的问题
+1

您正在调用一个需要块的方法,那么“callMethodWithBlock”在做什么?也许你应该在主要方法中编写你想要执行的代码? –

+1

如何使用[NSBlockOperation](https://developer.apple.com/library/Mac/DOCUMENTATION/Cocoa/Reference/NSBlockOperation_class/Reference/Reference.html)? – vikingosegundo

+0

Thx家伙为您解答,我编辑了我的问题。所调用的方法需要很长时间,而且我无法访问它,因为它来自库。该方块只是在方法完成作业时调用的“完成”方块 – rmonjo

回答

2

小细节,这里是一个可能的轮廓可以帮助:

  • 创建一个信号量(dispatch_semaphore_create
  • 执行你的库代码异步(dispatch_async
  • 有完成块您的库代码信号信号量
  • 您的主要方法是否等待信号量

HTH