2013-12-10 73 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