iOS学习笔记iOS学习开发iOS Developer

什么是Block

2016-01-10  本文已影响196人  GryllsNSTimer
BLOCK是什么?

苹果推荐的类型,效率高,在运行中保存代码。用来封装和保存代码,有点像函数,BLOCK可以在任何时候执行。

Block默认存储在栈中,访问了外界的对象,不会对对象retain;如果对block进行一次copy,block就会存储在堆中,访问了外界的对象,会对对象进行retain操作。

Block的定义

Block的格式

Snip20160107_17.png

Block定义在函数或方法内

int (^MyDear)(int, int) = ^(int a, int
b) {
return a+b;
};
```
定义了一个叫MyDear的blocks对象,它带有两个int参数,返回int。等式右边就是blocks的具体实现。

######block循环引用问题

- block尽量少使用self
- block尽量少使用下划线(_)直接访问成员属性
- 要避免强引用到self的话,用__weak把self重新引用一下就行
上一篇下一篇

猜你喜欢

热点阅读