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

ket*_*ale 5 block ios swift

您好我有以下要求.

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

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

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

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

func Method2
{
    Completion(data,error)
}
Run Code Online (Sandbox Code Playgroud)

Method2是我的委托方法.因此,当我Method1从其他类调用时,一旦指针打开,它将进入块Method2

PPL*_*PPL 7

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

var completionBlock : CompletionBlock!
Run Code Online (Sandbox Code Playgroud)

从今起 Method1

func Method1(block:CompletionBlock) { 
   self.completionBlock = block
}
Run Code Online (Sandbox Code Playgroud)

Method2

func Method2 {
    self.completionBlock(data,error)
}
Run Code Online (Sandbox Code Playgroud)

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