讲述闭包、协议、常用传值方式,交流时会结合参与的项目进行
闭包
一种带有局部变量的匿名函数。语法结构:^
返回值类型
参数列表
表达式
比如:
|
|
block的声明及使用
|
|
使用 typedef
简化
|
|
Objective-C代码中常用的写法举例
|
|
注意点
block 只读block外的属性,不可修改。
__block可破坏闭包,其修饰的属性可以在block内修改。
使用block的时候,特别要注意循环引用的问题
协议
类似Java中的interface。在ObjC中使用@protocol定义一组方法规范,实现此协议的类必须实现对应的方法。
例如常用的UITableViewDelegate协议格式:
|
|
注意点
- 协议方法的实现。
- @required //必须实现的方法(或者属性)
- @optional //可选实现的方法(或者属性)
- 调用delegate(实现协议的委托对象)方法时,如果是可选方法,一定要通过@selector进行判断
常用传值方式
这里说的传值方式,不包括View<->ViewController之间的Outlet、Target、Action等
闭包
一言不合就上代码:注意__weak
和__strong
的使用
|
|
协议
很常用的形式,比如UITableView、UIScrollView等UIKit框架中都是使用Protocol。
代码写起来清晰易懂
相对闭包来说代码量变大,第三者不容易理解
共有方法(属性)
这块没啥说的,就是直接在.h
文件中写属性,方法,对象直接调用(设置)即可
KVO
比较常用,一般Model、ViewModel层通过发广播的形式进行消息发送(数据传输)。
>
>
>
>