为什么有时我们快速使用-> void作为完成处理程序,但有时却不使用呢?

团队

我看了两个教程。第一个关于迅速完成基本处理程序。辅导员显示以下代码示例:

func isTextValid(input: String, completion: (result: Bool) -> Void) {

    if (input == "Hello") {
        completion(result: true)
    }else{
        completion(result:false)
    }
}


isTextValid("Hello", { (result) -> Void in
    if (result == true) {
        println("People say Hello")
    }else{
        println("People do not say hello")
    }
})

第二个教程是关于HTTP请求的,代码如下所示:

        /* 4. Make the request */
    let task = session.dataTaskWithRequest(request) {data, response, downloadError in

        if let error = downloadError {
            println("Could not complete the request \(error)")
        } else {

            /* 5. Parse the data */                
            var parsingError: NSError? = nil
            let parsedResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments, error: &parsingError) as! NSDictionary

            /* 6. Use the data! */                
            if let error = parsingError {
                println(error)
            } else {
                if let results = parsedResult["results"] as? [[String : AnyObject]] {
                    self.movies = Movie.moviesFromResults(results)
                    dispatch_async(dispatch_get_main_queue()) {
                        self.tableView.reloadData()
                    }
                } else {
                    println("Could not find results in \(parsedResult)")
                }
            }
        }
    }

    /* 7. Start the request */
    task.resume()

您可以看到第一行代码没有第一个教程那样的return void,为什么?

什么是返回无效?为什么我们必须输入return void?

伊卡罗

使用void是可选的,可以使用带有或不带有void声明函数的方式,也可以使用或带有声明的完成处理程序

func noReturn() -> Void

等同于

func noReturn()

对于声明时的完成处理:

func isTextValid(input: String, completion: (result: Bool) -> Void) 

等于

func isTextValid(input: String, completion: (result: Bool) -> ()) 

对于调用它的完成句柄:

(result) -> Void in

等于

(result) in

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么有时我们使用特定的位进行模板测试?

来自分类Dev

为什么有时我们需要在根目录下挂载那些文件?

来自分类Dev

为什么我们可以使用数组快速返回多个值时使用元组

来自分类Dev

为什么有时可以使用NodeJS缓冲区连接音频数据,而有时却不能呢?

来自分类Dev

为什么使用==比较两个Integer有时可行,有时却不可行?

来自分类Dev

我们已经有了StringBuilder时为什么要使用StringJoiner?

来自分类Dev

当我们有IDistributedCache时,为什么要使用IMemoryCache?

来自分类Dev

为什么我的解析任务有时无法完成?

来自分类Dev

为什么获得图像宽度有时效果很好,但有时在Vue.js中却无法呢?

来自分类Dev

为什么我们使用SKU,因为我们拥有唯一的ID

来自分类Dev

为什么JavaScript Promises有时既不使用.catch也不使用.then?

来自分类Dev

为什么JavaScript Promises有时既不使用.catch也不使用.then?

来自分类Dev

为什么我有时会出错而有时却没有呢?

来自分类Dev

我认为我不完全了解realloc,有人可以向我解释为什么我的代码中的realloc有时会失败,但有时却不会

来自分类Dev

为什么.rstrip()有时有效,但有时却无效?

来自分类Dev

为什么我的while循环有时会卡住,而有时却不会出现在“秘密圣诞老人”程序中?

来自分类Dev

为什么我们使用setLayoutParams?

来自分类Dev

为什么我们使用TaskStackBuilder?

来自分类Dev

为什么我们使用@staticmethod?

来自分类Dev

为什么我们使用扩展?

来自分类Dev

为什么我们使用“NULL”?

来自分类Dev

当我们有一个红色区域时,为什么我们需要堆栈分配?

来自分类Dev

当我们有一个红色区域时,为什么我们需要堆栈分配?

来自分类Dev

当有足够的字母代替基数32时,为什么我们这么多使用十六进制?

来自分类Dev

为什么我的sed命令有时无法与r标志一起使用

来自分类Dev

为什么有时我的UIBarButton粗体,有时又薄

来自分类Dev

为什么`.asInstanceOf`有时会抛出,有时却不会抛出?

来自分类Dev

为什么AS有时会接受大位移而有时却不接受?

来自分类Dev

为什么AS有时会接受大位移而有时却不接受?

Related 相关文章

  1. 1

    为什么有时我们使用特定的位进行模板测试?

  2. 2

    为什么有时我们需要在根目录下挂载那些文件?

  3. 3

    为什么我们可以使用数组快速返回多个值时使用元组

  4. 4

    为什么有时可以使用NodeJS缓冲区连接音频数据,而有时却不能呢?

  5. 5

    为什么使用==比较两个Integer有时可行,有时却不可行?

  6. 6

    我们已经有了StringBuilder时为什么要使用StringJoiner?

  7. 7

    当我们有IDistributedCache时,为什么要使用IMemoryCache?

  8. 8

    为什么我的解析任务有时无法完成?

  9. 9

    为什么获得图像宽度有时效果很好,但有时在Vue.js中却无法呢?

  10. 10

    为什么我们使用SKU,因为我们拥有唯一的ID

  11. 11

    为什么JavaScript Promises有时既不使用.catch也不使用.then?

  12. 12

    为什么JavaScript Promises有时既不使用.catch也不使用.then?

  13. 13

    为什么我有时会出错而有时却没有呢?

  14. 14

    我认为我不完全了解realloc,有人可以向我解释为什么我的代码中的realloc有时会失败,但有时却不会

  15. 15

    为什么.rstrip()有时有效,但有时却无效?

  16. 16

    为什么我的while循环有时会卡住,而有时却不会出现在“秘密圣诞老人”程序中?

  17. 17

    为什么我们使用setLayoutParams?

  18. 18

    为什么我们使用TaskStackBuilder?

  19. 19

    为什么我们使用@staticmethod?

  20. 20

    为什么我们使用扩展?

  21. 21

    为什么我们使用“NULL”?

  22. 22

    当我们有一个红色区域时,为什么我们需要堆栈分配?

  23. 23

    当我们有一个红色区域时,为什么我们需要堆栈分配?

  24. 24

    当有足够的字母代替基数32时,为什么我们这么多使用十六进制?

  25. 25

    为什么我的sed命令有时无法与r标志一起使用

  26. 26

    为什么有时我的UIBarButton粗体,有时又薄

  27. 27

    为什么`.asInstanceOf`有时会抛出,有时却不会抛出?

  28. 28

    为什么AS有时会接受大位移而有时却不接受?

  29. 29

    为什么AS有时会接受大位移而有时却不接受?

热门标签

归档