function - 我如何在 Swift 中创建带有完成处理程序的函数?

标签 function swift completionhandler

我只是好奇我将如何处理这个问题。如果我有一个函数,并且我希望在它完全执行时发生某些事情,我该如何将其添加到函数中?谢谢

最佳答案

假设您有一个从网络下载文件的下载功能,并且希望在下载任务完成时得到通知。

typealias CompletionHandler = (success:Bool) -> Void

func downloadFileFromURL(url: NSURL,completionHandler: CompletionHandler) {

    // download code.

    let flag = true // true if download succeed,false otherwise

    completionHandler(success: flag)
}

// How to use it.

downloadFileFromURL(NSURL(string: "url_str")!, { (success) -> Void in

    // When download completes,control flow goes here.
    if success {
        // download success
    } else {
        // download fail
    }
})

希望对您有所帮助。

关于function - 我如何在 Swift 中创建带有完成处理程序的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30401439/

相关文章:

ios - Swift - CompletionHandler 模板化为函数中的参数(UsingObjectMapper)

Java NIO2 并发完成处理程序

c++ - 为什么 std::function 在签名中接受 this 引用?

java - 我想知道方法背后的实际实现,例如 : To create a file in Java, 使用 createNewFile()

ios - CVPixelBufferCreateWithPlanarBytes 返回 -6661 (kCVReturnInvalidArgument)

ios - 在 iOS 11 中分享到 Twitter,无需侵入性请求

ios - 未缓存模块时,iOS 框架中的 C 静态库“无法构建 Objective-C 模块”

ios - 在检索 JSON 数据时,让完成 block 返回 Void 有什么意义?

python - 以更好的模式重写我的简单 Python 代码

Javascript:函数作为参数,可能性