UI(二十)block

作者: 社会主义顶梁鹿 | 来源:发表于2018-07-30 17:55 被阅读0次

*block 代码块 闭包(一个区域) 与C语言函数类似

*block 具有反向传值、回调的功能

 回调:执行完毕之后返回再去执行

 反向传值:回调的时候给它一个值

 *它分为声明实现和调用两部分

 声明:声明有这么一个类型的block (会执行这一步)

 实现:只要不主动调用就不会执行

 调用:当调用的时候会返回去执行实现的部分

*block 可以当参数也可以当变量使用

 1、block声明和实现

 2、分析回调 反向传值

 3、当做变量使用

 4、当做参数使用

 5、当做属性使用 解决block的内存循环引用

 6、让block代替代理

#pragma mark---block 的公式---

 1、声明实现 写到一块的公式

  *返回值类型 (^block名字)(参数列表:参数类型 参数名)= ^(参数列表:参数类型 参数名){

 实现代码

    (如果有返回值 需要return返回值类型的值)

  }

  *调用: block名字(参数);

 2、声明实现分开的公式

  (1)声明

 返回值类型 (^block名字)(参数列表);

  (2)实现

  block名字 = ^(参数列表){

 实现的内容 (如果有返回值return)

  }

  (3)调用

  block名字(实参);

  ****先实现后调用 不能未写实现就调用

 @() 转成NSNumber 类型 字典不能存int类型

 #pragma mark---__block---

 *__block:修饰词 修改block之外变量内容的修饰词

 ***如果不加__block 就不允许在block方法里面修改外部变量的值 就算是赋值 得到的也只是修改之前的值

 *__weak: 修饰词 弱引用 用它修饰的变量都是不安全的变量 -> 告诉编译器 可以释放这个对象

 *变量的名字在栈里面

 *修改不是局部变量的值的时候(涉及到对象)使用__weak 修饰 把不能销毁的对象用一个临时变量替换

 *修改是局部变量的值的时候用__block

相关文章

  • UI(二十)block

    *block代码块 闭包(一个区域)与C语言函数类似 *block具有反向传值、回调的功能 回调:执行完毕之后返回...

  • 更新AndroidUI线程的方法

    参考 Processes and Threads 重点 Do not block the UI threadDo ...

  • UI(二十一)block高级部分

    #pragma mark---block高级部分---- 全局变量 { void(^block)(NSString...

  • block中刷新UI

    block回调中刷新ui,日志提示: 意思是:需要在主线程中去刷新UI

  • iOS ReacttiveObjc

    Block block类型: 使用 MVVM 目的: 将UI逻辑与业务逻辑分离注意点: View引用ViewMod...

  • react-native-video(Cannot remove

    描述: 切换播放源的时候报错:Exception thrown while executing UI block:...

  • 《iOS的学习笔记》

    一、主要内容 OC部分:程序的启动原理、类的定义、属性、方法、分类、协议、Block等。 UI部分:基础控件、UI...

  • 总结

    重点: UI视图,OC语言,Runtime,内存,Block,多线程,Runloop,网络,设计模式,架构/框架,...

  • iOS 面试题集合(持续更新.....)

    概述 UI 视图 OC语言相关的面试题 Runtime 内存管理 Block 多线程 RunLoop 网络 设计模...

  • iOS学习笔记之@property

    strong: 除NSString\block以外的OC对象 weak:各种UI控件(但不是绝对,也有控件要使用s...

网友评论

    本文标题:UI(二十)block

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