美文网首页
学习 swift 闭包

学习 swift 闭包

作者: Faith_K | 来源:发表于2017-10-27 09:34 被阅读27次

1. 声明一个可为空的闭包 (() ->Void)? 表示没有参数 如果需要参数 ((_ x :String ) ->Void)?

var doSomethingHandle : (() ->Void)?

2.初始化闭包,相当于OC 中的实现闭包

self.doSomethingHandle = {()-> Void in

print("diaoyongbihaa")

}

3.调用闭包 

// 这里不加判断 假如doSomethingHandle 为nil 也就是没有初始化,相当于OC block 没有实现。使用 !强制解包 会导致崩溃 : fatal error: unexpectedly found nil while unwrapping an Optional value,  在对变量值操作前添加?,判断如果变量时nil,则不响应后面的方法。

if self.doSomethingHandle != nil{

self.doSomethingHandle!()

}

以上为个人理解内容。有不对的地方 多多指教。

OC 版本 

1.声明一个block

/*

* void 返回值

* 声明一个 blcok 属性 为 doSomethingHandle

* () 参数 这里是没有参数 如果有 void(^doSomethingHandle)(NSString *str)

*/

@property (copy, nonatomic) void(^doSomethingHandle)()

2.实现block

self.doSomethingHandle = ^ (){

};

3.调用block

if (self.doSomethingHandle) {

self.doSomethingHandle();

}

对比下 switf的闭包 与oc 的block 只是语法有改变,但是方式都一样,1.声明闭包,2,实现闭包,3 调用。。。。 

相关文章

  • swift闭包学习

    闭包作为参数 参考 Swift学习之闭包

  • Swift5.x-枚举(中文文档)

    引言 继续学习Swift文档,从上一章节:闭包,我们学习了Swift闭包相关的内容,如闭包的定义和使用、闭包的简写...

  • Swift学习笔记(1)

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

  • Swift-闭包

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

  • Swift闭包和函数

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

  • swift学习笔记 ⑥ —— 闭包

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

  • swift4 闭包

    swift 闭包 闭包:swift 中 函数是闭包的一种类似于oc的闭包闭包表达式(匿名函数) -- 能够捕获上下...

  • Swift中的闭包

    在Swift中有两种闭包,逃逸闭包(@escaping)和非逃逸闭包(@nonescaping)。从Swift 3...

  • 100 Days of Swift - Day 06 - 闭包(

    100 Days of Swift - Day 06 - 闭包Closures 6.1 闭包 Swift函数也属于...

  • swift学习

    * 闭包 * 闭包作为属性 ```swift // 声明闭包类型 typealias callba...

网友评论

      本文标题:学习 swift 闭包

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