【发布时间】:2009-07-11 21:41:44
【问题描述】:
这里还在学习 Objective-C / iPhone SDK。我想我知道为什么这不起作用,但我只是想确认一下。
在awakeFromNib 中,如果我使用[[NSMutableDictionary alloc] initWithObjects:...],它实际上会使用NSMutableDictionary 数据分配(iPhone)系统内存,但是当我使用[NSMutableDictionary dictionaryWithObjects:...] 时,它只能在堆栈中使用,对吧?
例如,将来如果我尝试通过 IBAction 按下按钮访问myMutableDict,myMutableDict 对象可能已被释放,导致我的应用程序崩溃,即使我在我的.h 文件,并合成它:
@property (nonatomic, retain) NSMutableDictionary *myMutableDict;
由于某种原因更改为 [[NSMutableDictionary alloc] initWithObjects:...] 修复了此问题。
【问题讨论】:
标签: iphone objective-c cocoa memory-management