项目中闭包的使用Swift

Swift闭包类似OC的代码块(block)

语法

{ (参数1(可无可有) ) -> 返回值类型(可无可有) in  
           执行的代码
}
先来定义一个 有参数,有返回值 闭包
//计算两个数值的和

// 定义执行的代码块,赋值给一个常量
   let calculate =  { (item1 : Int , item2 : Int) ->Int  in
   return item1 + item2
}
//当我们传值后,会立即执行代码块,根据有无返回值 
let result = calculate(200,50)
print(result)
//运行结果 250 

实际项目中,

举个例子: 购买商品订单结算页面,结算前你必须要填入收货地址(这只是其中一个必选项),当我从收货地址页面选择好地址时,要显示在订单页面给客户看到,这是我只需要一个闭包就能完成(当然 代理也是能实现的)
//在订单控制器 (OrderlistController)  执行闭包函数


let addressController = AddressController()//地址选择页面
//闭包执行区
addressController.goodsAddress = { [weak self] (address:String) in
   //赋值当前控件 显示收货地址
    self.addressLable.text = address
}

//地址控制器 (AddressController) 选择收货地址
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
      guard  let addressModel = AddressListArray[indexpath.row] else{return}

       //闭包赋值操作, 当闭包赋值执行时, 会立即调用 闭包执行区
      goodsAddress(addressModel.name)//addressModel.name 指地址名称
 }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在上一篇文章Swift中的变量和常量中我总结了一些自己对于变量和常量的认识,最近学习了闭包,顺便给大家分享一下关于...
    老板娘来盘一血阅读 18,827评论 16 87
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,334评论 4 61
  • 这世上有许多小学,许多小学有许多班级,许多班上都有一个大姐头。 你,还会不会想起你们班上的大姐头? 我上小学一年级...
    我去食堂阅读 3,122评论 0 1
  • 第2课,继续蛋白质生化,代谢通路。 共性结构使氨基酸、蛋白质在功能上具有共性,代谢上也是。 人体内的氨基酸有两个来...
    恋学营养阅读 3,638评论 14 3
  • 人生不是一场马拉松。谁定的起点;谁定的路线;谁定的终点;改跑去那好,改往那跑才对。我们每个人都有属于自己的路,我们...
    冷筱陌阅读 1,846评论 0 1