您好,我有以下要求。

我想在委托(delegate)方法触发后调用完成块。

请以下面的示例代码段为例。

typealias CompletionBlock = (_ result: NSData?, _ error: NSError?) -> Void

 func Method1(block:CompletionBlock)
{
   //SOME CODE
}

func Method2
{
    Completion(data,error)
}
Method2是我的委托(delegate)方法。
因此,当我从其他类调用Method1时,一旦指针位于Method2上,它将进入代码块

最佳答案

您可以创建一个这样的属性,

var completionBlock : CompletionBlock!

现在在Method1
func Method1(block:CompletionBlock) {
   self.completionBlock = block
}

Method2
func Method2 {
    self.completionBlock(data,error)
}

我没有测试此代码,但是在我的一个应用程序中实现了这样的代码。希望这可以对您有所帮助。

关于ios - 如何从声明之外调用block?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50638632/

10-09 00:51