1、在使用block前需要对block指针做判空处理
2、block如果作为属性变量时,要copy一下,将栈上的block拷贝到堆上
3、在block使用之后要对block指针做赋空值处理,如果是MRC的编译环境下,要先release掉block对象。
4、使用时将self或成员变量加入block之前要先将self变为__weak弱引用,这与第三条其实是一个问题,就是解决循环引用问题。
5、在多线程环境下(block中的weakSelf有可能被析构的情况下),需要先将self转为strong指针,避免在运行到某个关键步骤时self对象被析构。
网友评论