potential leak of an object

做了一个测试,先上代码:
ViewController.h
屏幕快照-2013-03-21-上午9.42.49.png
ViewController.m
屏幕快照-2013-03-21-上午9.43.16.png

我的问题:那个潜在的内存泄漏是怎么产生的?怎么做相关的优化?

阅读 6.7k
2 个回答

@property(nonatomic, retain)标明该属性在使用其set方法时会自动retain一次。 self.leftView = [[UIView alloc] initWithFrame:...];这条语句,alloc使其引用计数+1,同时调用leftView的set方法,引用计数再+1,引用计数一共加了2次,而实际上我们想要的效果是引用计数只加1次,所以有内存泄露。 正确的写法应该是: UIView *myView = [[UIView alloc] initWithFrame:...]; self.leftView = myView; [myView release]; 这样Analyze时就不会提示内存泄露。

看你的声明,应该是没有自动计数ARC的。所以要自己管理内存。
你的leftView泄露了,alloc那行,增加autorelease就可以了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题