如何从其声明之外调用块?

How to call block from outside its declaration?

您好,我有以下需求。

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

请以下面的示例片段为例。

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

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

func Method2
{
    Completion(data,error)
}

Method2 是我的委托方法。 因此,当我从其他 class 调用 Method1 时,一旦指针位于 Method2

上,它将进入块

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

var completionBlock : CompletionBlock!

现在 Method1

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

Method2

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

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