您的位置:首页 > 移动开发 > IOS开发

ios 循环引用的场景

2016-03-31 14:26 267 查看
声明delegate为strong类型,简而言之,如果父VC持有子VC,并设置子VC的delegate为self(也就是父VC),这样的结果就是子VC也间接持有了父VC,造成循环引用,在Pop子VC的时候不会调用delloc。

timer是否持有self,
1.NSTimer对象会保留目标,直到其失效为止,调用invalidate可以让其失效,或者一次性计时器触发任务完成之后。
2.反复执行的任务可能导致保留环的发生。如果目标对象保留了计时器,那么就形成了保留环,如果不再相应的时机人为打破保留环,那么内存就泄露了。
相见http://blog.csdn.net/li198847/article/details/50856044

 最常见的就是block导致的直接的或是间接的循环引用,__weak typeof(self) weakSelf = self的简化形式,可以拿来直接使用。

CoreFoundation对象(C对象) : 只要函数中包含了create\new\copy\retain等关键字, 那么这些方法产生的对象, 就必须在不再使用的时候调用1次CFRelease或者其他release函数。还有就是通过__bridge_retain桥接转换过来的,也要手动的CFRelease。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: