my.h文件
@interface myObject : NSObject {
NSMutableDictionary *myDictn ;
}
我有一个属性
@property (nonatomic,retain) NSMutableDictionary *myDictn ;
然后在.m文件中
我从id
分配了它- (id)init {
if (self=[super init]) {
myDictn= [NSMutableDictionary alloc]init];
}
}
我的问题是我已经提到保留财产并且我也分配了内存(保留计数转到2进入(id)初始化)
那么如何在这种情况下管理记忆呢?
我是新手,因此对内存管理有很多想法。
如果我的代码中有method x
并且我还将内存分配给myDictn
,还有一件事情,那么在这种情况下我也可以使用release。
在此先感谢。
答案 0 :(得分:0)
初始化保留属性的正确方法是:
NSMutableDictionary *newDict = [[NSMutableDictionary alloc] init];
self.myDictn = newDict;
[newDict release];
或者:
self.myDict = [NSMutableDictionary dictionary];
第一种方法通过在临时对象上执行alloc,init(增加保留计数的操作)来确保不增加已保留属性的保留计数。
第二种方法使用便捷方法获取字典的自动释放实例。
答案 1 :(得分:0)
您应首先参考Cocoa Fundamentals Guide。然后,如果您的目标是iOS> 4.3,您可以依靠Automatic Reference Counting进行内存管理。但一定要了解基本概念并阅读基本指南,否则你将浪费大量时间在黑暗中编程。