Block使用注意点

来源:互联网 发布:而知也无涯成语 编辑:程序博客网 时间:2024/04/28 00:44

block的格式:

typedef void (^ArrayEnumerateBlockType)(id, NSInteger, BOOL*);

外部变量的使用:

  1. 基本数据类型在block中的地址已经发生变化,所以block体外对于此数据类型的值修改对于体内的值毫无影响。
  2. block所copy或retain的变量,一旦block结束,也就一起跟着被释放和销毁了。
  3. 所谓的block会进行retain的指针类型,也包含Objective-C的所有对象的。

为了使用外部变量:

  1. 使用static的 静态变量。 全局变量。
  2. 使用__block关键字。 当声明为__block后,block体中就会知道,即使用到这个外部变量,也坚决不会去进行retain或则copy。

注意:当block时作为一个类的成员对象存在,不要对类的其他成员量进行操作,因为操作后就会对类对象self进行retain。

另外:
property使用 @property(nonatomic, copy).
而delegate使用 @property(nanatomic, assign).

0 0
原创粉丝点击