iOS9中weak的改变


向弱引用说bye-bye

大家都知道,在ARC模式中,有两种引用:强引用和弱引用。这两种都是用来描述指针的,一个对象拥有的指针对象(strong,保留计数),或者它不拥有自己的指针对象(weak,保留计数不变)。
所以,弱引用可以让计数器归零,意味着对象执行dealloc方法的时候,指针就为零。

iOS8以前的使用

// UITableView iOS 8 之前
@property(nonatomic, assign) id<UITableViewDataSource> dataSource
@property(nonatomic, assign) id<UITableViewDelegate> delegate
// UICollectionView iOS 8 之前
@property(nonatomic, assign)id<UICollectionViewDelegate> delegate
@property(nonatomic, assign) id<UICollectionViewDataSource> dataSource

但是在iOS9中,使用了weak, nullable来代替assign

// UITableView iOS 9中使用
@property(nonatomic, weak, nullable) id<UITableViewDataSource> dataSource
@property(nonatomic, weak, nullable) id<UITableViewDelegate> delegate
// UICollectionView iOS 9中使用
@property(nonatomic, weak, nullable) id<UICollectionViewDelegate> delegate
@property(nonatomic, weak, nullable) id<UICollectionViewDataSource> dataSource

注意:但是考虑到系统的兼容性,到时候使用的时候需要作出判断!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容