1、weak比assign多了一个功能,当对象消失后自动把指针变成nil。所以在arc下,代理属性的声明,使用weak修饰符比assign修饰要好,这样可以避免循环引用。
2、__weak 声明了一个可以自动 nil 化的弱引用。
3、Block属性的声明,首先需要用copy修饰符,因为只有copy后的Block才会在堆中。
4、 Block的原型:
返回值 (^名称)(参数列表)
Block的定义
^ 返回值类型 (参数列表) { 表达式 }
其中返回值类型和参数列表都可以省略,最简单的Block就是:
^{ ; };
一般的定义就是:
返回值 (^名称)(参数列表) = ^(参数列表){代码段};
为了方便通常使用typedef定义:
typedef void (^blk) (void);
本文详细介绍了Objective-C中弱引用(weak)与自动nil化的特性,对比了weak与assign的区别,并阐述了如何利用weak避免循环引用。此外,还深入解析了Block的基本语法与用法,包括其定义、返回值及参数列表。
3万+

被折叠的 条评论
为什么被折叠?



