swift中的block

在OC中习惯用block来传值,而swift中,block被重新定义了一下,叫闭包;

使用的技巧:谁定义谁传值;


案例使用A、B控制器:

1~4步在B中执行,最后在A中执行;


- B控制器:

1-定义

格式: typealias 闭包名称 = (参数名称: 参数类型) -> 返回值类型

typealias  block = (str: String) -> void

2- 声明

var callBackBlock = block?()

3- 赋值

需要定义一个方法,参数是和block类型一致得闭包,并赋值给block

```

func callBackFunction ( block: (str: String) -> Void ) {

      callBackBlock = block

}

```

4- 传值

func buttonClick () {  //需要传值的方法

    if callBackBlock != nil {

        callBackBlock!( "传这个值给A")    //注意,这里是使用属性传值,不是方法

    }

}

5 - A控制器中

B.callBackFunction { (str) in

      print("这里使用传过来的值")

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在上一篇文章Swift中的变量和常量中我总结了一些自己对于变量和常量的认识,最近学习了闭包,顺便给大家分享一下关于...
    老板娘来盘一血阅读 18,811评论 16 87
  • 前言 Blocks是C语言的扩充功能,而Apple 在OS X Snow Leopard 和 iOS 4中引入了这...
    小人不才阅读 9,126评论 0 23
  • Swift 介绍 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序 ...
    大L君阅读 8,531评论 3 25
  • 1、范型范型所解决的问题 函数、方法、类型:类,结构体,枚举,元组类型,协议参数,返回值,成员函数参数,成员属性类...
    我是小胡胡123阅读 4,302评论 0 1
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 9,227评论 0 6