UI_Block高级

实现回调

    1. block是匿名函数,能够实现函数回调功能
    2. 用于页面之间通信,同时可以进行传值

 

Block内存问题

    1. 定义属性接收block,必须使用copy修饰。retain无效,即retain和assign会造成野指针问题
    2. block在某个方法中定义时存储在栈区,在另一个类中使用需要进行copy,存储在堆区
    3. 当不使用block时需要销毁,Block_Release()

 

循环引用

    1. 在block实现部分,不能直接使用实例变量、self调用属性,因为block会造成self引用计数器加1,最终导致循环引用问题
    2. 使用__block解决循环引用问题 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2015-04-18 19:41  captivity  阅读(91)  评论(0)    收藏  举报