使用CFArray保持对象的弱引用

创建CFArray对象

NSMutableArray *array = (__bridge_transfer NSMutableArray *)CFArrayCreateMutable(nil, 0, nil);

需求

有很多类需要加通知,通知更新视图,把所有的通知都添加到一个单利的数组里面,遍历数组去执行视图的更新,

用NSArray 管理对象循环引用

  • 用NSArray 里面放通知的对象,造成了强引用,这样导致这个类无法释放。

用底层CFArray管理对象

  • 这样并不会增加对象的引用计数,对象能正常释放,

  • 但需要注意在对象被dealloc时,移除CFArray的引用关系,不然会形成野指针,导致崩溃。

发布了128 篇原创文章 · 获赞 106 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/Z1591090/article/details/103281278