在Xcode中,在dealloc方法中通过类似[self.object release]释放对象时,此行显示为使用静态代码分析器的内存泄漏,但在运行仪器时不显示泄漏。
我的问题是,不同的BWN [self.object release]
和[object release]
请澄清一下,
提前致谢。
答案 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。