block知识点
1、block引用局部变量的时候,该变量会作为常量编码到block中,在block中不能被修改。
2、使用 __block修饰的局部变量,不会作为常量被编码到block中,故而在block中可以被修改。
3、在block中引用一个局部的Objective-C对象的时候,该对象会被retain。
4、如果不想局部变量对象在block中被retain,应该使用 __block来修饰相应的局部变量。
5、在block中引用一个实例对象(假设A)的一个实例变量(假设 b),该实例对象(也就是A)会被retain。
6、block本身可以像对象一样copy和release。
copy方法:a、[_block copy] b、Block_copy(_block)
release方法:a、[_block release] b、Block_release(_block)
7、block创建后,内存是分配在栈上的,调用copy方法,会讲block从栈移动到堆上。
8、当block声明为全局变量的时候,我们应该调用block的copy方法。