2017-06-06 31 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

相关问题