【发布时间】:2011-12-16 20:24:40
【问题描述】:
我正在尝试真正了解一些内存管理问题。并找到了this question,部分回答了我的问题。
例如,在 MyObject 中,我将一个实例变量声明为属性,并在实现文件中正确合成:
@interface MyObject : NSObject
...
ObjectA objA;
...
@property (nonatomic, retain) ObjectA *objA;
@end
在某个任意点,我实例化了 objA。我知道self.objA = _objA; 调用了合成访问器。从逻辑上讲,这意味着self.objA = [[ObjectA alloc] init]; 会导致内存泄漏,因为保留计数会比预期的多一个(我知道直接检查保留计数并不是检查对象将在内存中保留多长时间的准确方法)。
objA = [[ObjectA alloc] init; 是否也调用了 setter,并可能导致内存泄漏?
【问题讨论】:
-
@Caleb 非常接近。只是没有出现在我的搜索中。
标签: objective-c memory-management