静态分析仪 - 内存泄漏

时间:2012-05-08 11:14:50

标签: objective-c ios memory-management static-analysis

在Xcode中,在dealloc方法中通过类似[self.object release]释放对象时,此行显示为使用静态代码分析器的内存泄漏,但在运行仪器时不显示泄漏。

我的问题是,不同的BWN [self.object release][object release]

是什么

请澄清一下,

提前致谢。

2 个答案:

答案 0 :(得分:3)

self.object实际上调用了getter方法([self object]),它返回实例变量object(或取决于如何合成),但实例变量实际上保存了保留的对象,所以你必须[object release]。最好使用@synthesize object = _object来合成属性,这样就不会混淆属性和实例变量 - 您的属性将是self.object,但实例变量将是_object你会打电话给[_object release];

答案 1 :(得分:3)

而非做 -

[self.object release]

你需要做 -

self.object = nil; or [object release];

[self.object release]将释放调用发送到getter of property返回的对象。结果将取决于属性是否定义为assign / copy / retain。