如何从声明外部调用块​​?

时间:2018-06-01 07:53:47

标签: ios swift block

您好我有以下要求。

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

请以下面的示例摘要为例。

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

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

func Method2
{
    Completion(data,error)
}

Method2是我的委托方法。 因此,当我从其他类调用Method1时,一旦指针在Method2上,它就会进入块

1 个答案:

答案 0 :(得分:7)

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

var completionBlock : CompletionBlock!

现在Method1

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

on Method2

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

我没有测试过这段代码,但是在我的一个应用程序中实现了这样的代码。希望这可以帮到你。