美文网首页
Swift 基础笔记 - 闭包

Swift 基础笔记 - 闭包

作者: 其实朕是一只程序猿 | 来源:发表于2016-04-13 08:48 被阅读19次

闭包

  • 闭包类似于 OC 中的 Block,是一段预先定义好的代码,在需要时执行

定义

  • 体验UIView动画闭包
//: () -> Void 表示一个 `不需要参数,返回值为空` 的闭包类型
UIView.animateWithDuration(0) { () -> Void in
//
}
  • 闭包表达式格式:
  { (形参名称1: 形参类型1, 形参名称2: 形参类型2, ...) -> 返回值 `in`
          //要执行的代码
  }

in 用于区分闭包定义和代码实现

  • 定义闭包
// 定义闭包
var closure = { (text: String) -> Void in
}
  • 调用闭包
// 调用闭包
closure("学习闭包")

闭包使用场景(回调)

  • 模拟耗时操作
  // 闭包的使用场景: 回调
  // 在子线程执行完任务后通知调用者
  func loadData(finished: (result: String) -> Void) {
      dispatch_async(dispatch_get_global_queue(0, 0)) { () -> Void in
          print("拼命加载数据: \(NSThread.currentThread())")

          dispatch_async(dispatch_get_main_queue(), { () -> Void in
              print(": \(NSThread.currentThread())")
              // 通知调用者
              finished(result: "获取到20条数据")
          })
      }
  }
  • 调用
loadData { (result) -> Void in
  print("网络请求完成: \(result)")
}

闭包的简写

// 当闭包的参数和返回都为空时可以省略 () -> Void in
UIView.animateWithDuration(1) {
}

// 闭包是最后一个参数,可以把闭包放在()后面,尾随闭包
UIView.animateWithDuration(1) { () -> Void in
}

相关文章

  • Swift学习笔记(1)

    SWift学习笔记 闭包 闭包表达式 闭包是自包含的函数代码块,可以在代码中被传递和使用。Swift 中的闭包与 ...

  • Swift 基础笔记 - 闭包

    闭包 闭包类似于 OC 中的 Block,是一段预先定义好的代码,在需要时执行 定义 体验UIView动画闭包 闭...

  • Swift 基本语法(函数, 闭包)

    前言 接上篇, 这篇聊一下 Swift中的 函数, 闭包 一 函数 二 闭包 Swift 基础 先介绍三篇, ...

  • swift学习笔记 ⑥ —— 闭包

    Swift学习笔记 - 文集 闭包,就是能够读取其他函数内部变量的函数。Swift 中的闭包与 C 和 OC 中的...

  • 托XX福写个Swift闭包教程

    闭包基础知识 Swift闭包和OC的block类似不过还是有点区别 OC的block是一个匿名函数 Swift 中...

  • Swift3.0_闭包(Closure)

    闭包基础 ** 闭包是自包含的函数代码块,可以在代码中被传递和使用。Swift 中的闭包与 C 和 Objecti...

  • Swift-闭包

    Swift 闭包 函数 ()->() Swift 中的闭包和 Objective-C 中的 block 类似,闭包...

  • Swift闭包和函数

    函数在Swift中只是一种特殊的闭包,闭包在Swift语言中是一等公民,支持闭包嵌套和闭包传递。Swift中的闭包...

  • Swift基础-- 闭包

    一,闭包的定义 闭包是自包含的函数代码块,可以在在代码中被传递和使用。 闭包能捕获和存储骑在上下文中任意常量和变量...

  • swift - 闭包基础

    闭包 closure 闭包在Swift中应用广泛,在许多系统库方法中都能看到。 无名本质是函数使用时注意循环引用 ...

网友评论

      本文标题:Swift 基础笔记 - 闭包

      本文链接:https://www.haomeiwen.com/subject/xutilttx.html