【发布时间】:2011-01-24 10:16:55
【问题描述】:
使用以下代码,分析器将 setMyDict 选择器调用标记为潜在泄漏,并在 dealloc 中声明“调用者此时不拥有引用计数的错误递减”
- (id)init {
if (self = [super init]) {
[self setMyDict:[[NSMutableDictionary alloc] init]];
}
return self;
}
- (void)dealloc {
[[self myDict] release];
[super dealloc];
}
@synthesize myDict = _myDict;
我不明白这一点。我认为,通过 alloc init 对象将保留计数增加一,并且指针通过综合属性存储在 _myDict 中。如果我改用这段代码
- (id)init {
if (self = [super init]) {
_myDict = [[NSMutableDictionary alloc] init];
}
return self;
}
- (void)dealloc {
[_myDict release];
[super dealloc];
}
分析器不会抱怨。我错过了什么?
【问题讨论】:
标签: iphone xcode memory-leaks analyzer