Ios 如何使用属性管理内存

Ios 如何使用属性管理内存,ios,memory-management,memory-leaks,Ios,Memory Management,Memory Leaks,我的.h文件 @interface myObject : NSObject { NSMutableDictionary *myDictn ; } 我有一处房产 @property (nonatomic,retain) NSMutableDictionary *myDictn ; 然后在.m文件中 我有一个从id分配的 - (id)init { if (self=[super init]) { myDictn= [NSMutableDictionary all

我的.h文件

@interface myObject : NSObject {
    NSMutableDictionary *myDictn ;
}
我有一处房产

@property (nonatomic,retain) NSMutableDictionary *myDictn ;
然后在.m文件中

我有一个从id分配的

- (id)init {
    if (self=[super init]) {
        myDictn= [NSMutableDictionary  alloc]init];
    }
}
我的问题是,我已经在属性中提到了Retain,并且我也分配了内存(是Retain Count在(id)init中变为2
那么在这种情况下如何管理内存呢?
我是新手,所以对内存管理没有太多想法

还有一件事,如果我的代码中有一个
方法x
,并且我也为
myDictn
分配了内存,那么在这种情况下,我如何使用release呢。??
提前感谢。

初始化保留属性的正确方法是:

NSMutableDictionary *newDict = [[NSMutableDictionary alloc] init];
self.myDictn = newDict;
[newDict release];
或者:

self.myDict = [NSMutableDictionary dictionary];
第一个方法确保不会通过对临时对象执行alloc,init(增加retain count的操作)来增加已保留属性的retain count


第二种方法使用一种方便的方法来获取字典的自动删除实例。

您应该首先参考。然后,如果你的目标是iOS>4.3,你可以依靠它来进行内存管理。但是一定要理解基本概念并阅读基本指南,否则你将在黑暗中浪费大量时间编程。

是的,这听起来很酷,我认为上面的代码对于我希望为对象分配内存的每个函数都是相同的。您还可以建议一件事,如果要使用属性var,每次我都需要为它分配内存吗?