2017-06-06 44 views
0

我有一種情況,在一個班級中我有3個功能。 a,b和c功能。我在b和b函數裏面調用c函數。但在這裏我有1個問題。 一旦c的函數完成塊完全執行,在哪裏調用b函數完成塊。如何調用函數內的塊,誰正在等待另一個函數的塊內部完成?

爲例如:

typealias fetchCompletionBlock =() -> Void 

class abcd { 

    func a() { 
     b({ 
      print("b called completed") 
     }) 
    } 
    func b(_ onCompletion: @escaping fetchCompletionBlock) { 
     c({ 
      print("c called completed") 
     }) 
    } 
    func c(_ onCompletion: @escaping fetchCompletionBlock) { 
     print("c called") 

     onCompletion() 
    } 
    //self.a() 
} 

var data = abcd() 
data.a() 

其中調用B功能完成塊。我知道它會在b功能體內,但我不知道確切的地方。

有人可以幫忙。

+0

它應該是你給到C完成塊()內。即在打印之後(「c調用完成」)行。 –

回答

1

b函數完成塊應該在c函數完成處理程序中調用。

函數B應該是這樣的:

func b(_ onCompletion: @escaping fetchCompletionBlock) { 
    c({ 
     print("c called completed") 
     onCompletion() 
    }) 
} 
+0

是的,它的工作..謝謝 – user1960279

相關問題