iOS中的循环引用问题

2016-03-30  本文已影响1611人  Keep_FighterLS

如题,最近检查代码,慢慢的填之前挖过的坑,发现之前写的代码真是差到不忍直视。发现很多循环引用问题。

容易引起循环引用的问题总结

@property (nonatomic, weak, nullable) id <UICollectionViewDelegate> delegate;
@property (nonatomic, weak, nullable) id <UICollectionViewDataSource> dataSource;
@property (nonatomic,strong) UIViewController *mViewController;
UIViewController *vc;//默认为strong类型,同样可写为UIViewController __strong *vc
UIViewController __weak *vc;//通过__weak弱引用变量。

5.NSTimer
会对传入的target强引用,具体参看Weak Reference to NSTimer Target To Prevent Retain Cycle
解决办法有两个:
a.GCD完成NSTimer的功能
https://github.com/mindsnacks/MSWeakTimer
b.用一个中间对象处理
YYWeakProxy

上一篇 下一篇

猜你喜欢

热点阅读