ios - 如何从其声明之外调用 block ?

标签 ios swift block

您好,我有以下需求。

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

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

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

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

func Method2
{
    Completion(data,error)
}

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

上,它就会进入 block

最佳答案

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

var completionBlock : CompletionBlock!

现在开始方法1

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

关于方法2

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

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

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

相关文章:

ios - 我们可以从 WatchOS 2 扩展调用 IBM worklight 7 适配器​​吗?

ios - 居中 UITextField

ios - 使用 PinchGesture 控制最大和最小缩放

python - 使用多个 Numpy 数组作为一个 Seaborn 箱线图输入的简单方法

php - 用户名和密码参数的 AFNetworking 异步 POST 请求(Objective-C iOS)

ios - 错误 : 'Type of expression is ambiguous without more context'

ios - 等到用户触摸屏幕。 swift

Swift:是否可以使用变量作为自定义类名?

linux - blktrace 中的同步 I/O

Java - 在 rt.exec 调用 WinXP 32 位的 C++ 程序后,应用程序随机挂起