tab*_*ber 2 iphone cocoa memory-management objective-c
还在这里学习Objective-C/iPhone SDK.我想我知道为什么这不起作用但我只想确认.
在awakeFromNib,如果我使用[[NSMutableDictionary alloc] initWithObjects:...]它实际上用这个NSMutableDictionary数据分配(iPhone)系统内存,但是当我使用[NSMutableDictionary dictionaryWithObjects:...]它时,它只在堆栈中可用吗?
例如,将来如果我尝试myMutableDict通过IBAction从按钮按下访问,该myMutableDict对象可能已被释放,导致我的应用程序崩溃,即使我已在我的.h文件中定义它,并合成它:
@property (nonatomic, retain) NSMutableDictionary *myMutableDict;
Run Code Online (Sandbox Code Playgroud)
由于某种原因改变到[[NSMutableDictionary alloc] initWithObjects:...]固定这个.
cob*_*bal 15
+dictionaryWithObjects:返回一个自动释放的词典,
-initWithObjects:你必须自己释放
如果你想让字典作为实例变量持久化,你应该使用init方法创建它或者保留一个自动释放的版本,无论哪种方式,你都应该确保在你的dealloc方法中释放它
关于这个主题的一个很好的资源是Cocoa的内存管理编程指南.
| 归档时间: |
|
| 查看次数: |
7203 次 |
| 最近记录: |