iOS内存管理仍然是我想要理解的东西,但这也是我最感兴趣的方面,所以我在这里要求我的代码的一些帮助。了解内存管理与NSDictionary版本
我尝试实例化一个对象的NSDictionary,我用它,然后我想释放,但我得到了一个对象发布的错误,这是代码:
if ([jsonArray count] > 0) {
NSDictionary *commentDictionary = [[NSDictionary alloc]init];
int i;
for (i = 0; i < [jsonArray count]; i++) {
commentDictionary = [jsonArray objectAtIndex:i];
NSLog(@"debugging message here"]);
commentLabel.text = [commentDictionary objectForKey:@"commentText"];
//[commentDictionary retain];
}
//[commentDictionary release];
commentDictionary = nil;
NSLog(@"NSDictionary retainCount = %d",[commentDictionary retainCount]);
}
没什么特别的,我填从字典一个数组,在我的代码中,你可以看到我试图释放,但由于错误而被我注释掉了。 为什么我不能发布字典?
此外,将NSDictionary设置为nil,在retainCount和release中返回零(这应该使计数为-1)有什么区别?
非常感谢您对本主题提供的任何帮助。
法布里奇奥
您的代码表明对基于指针的内存管理缺乏了解。请阅读http:// boredzo。组织/指针/指针是什么以及它对你的代码意味着什么。 – 2011-02-14 21:18:25