我的课程中有以下属性
@property (nonatomic, retain, readonly) NSMutableArray *children;
我有以下方法为此属性分配内存。
- (NSMutableArray *)children {
if (!children) {
children = [[NSMutableArray alloc] initWithCapacity:1];
}
return children;
}
当我在xcode中运行探查器时,它显示我在上述方法中有内存泄漏。我对在这种情况下释放记忆感到困惑。 如果我将其与autorelase一起使用,如果可以,如下。
children = [[[NSMutableArray alloc] initWithCapacity:1] autorelease];
可以帮助我解决这个问题。
答案 0 :(得分:1)
你释放孩子们的dealloc吗?如果没有,那就是你的问题!
- (void)dealloc {
[children release];
...
[super dealloc];
}
答案 1 :(得分:1)
为什么不让编译器为你工作呢?您可以执行以下操作:
- (id) init {
if(self=[super init]) {
children = [[NSMutableArray alloc] init]
}
使用dealloc iTukker向您展示并合成属性。
至少对我而言,这更为直截了当。