xcode 4.2来自Analyze工具的消息

时间:2011-11-25 01:07:18

标签: xcode memory-leaks

对Xcode 4.2中Analyze命令的消息感到困惑。它抱怨实例变量activityView。

enter image description here

分析工具在[self startRefresh:NULL]行上抱怨有关activityView的潜在泄漏。

  1. activityView是一个实例变量,并且是合成的
  2. 我在dealloc()
  3. 中发布了activityView
  4. 根据我的理解,当使用setter(通过self.activityView隐式)时,会释放先前的值,对吗?
  5. 那么,我该如何阅读Analyze工具中的警告?或者我需要做哪些改变?

    THX。

1 个答案:

答案 0 :(得分:2)

假设@property具有retain属性,setter将保留这个新的活动视图,因此你仍然要对来自alloc / init的+1计数负责。

所以你可以这样做:

self.activityView = [[[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite] autorelease];

只需自动释放新实例以平衡alloc / init。

分析器不会警告您有关activityView的先前值。它警告你关于新实例,它在你的alloc / init和@property(retain)之后有效地保留了+2。