kum*_*mar 2 memory-leaks objective-c iphone-sdk-3.0
我有一个这样的课:
@interface MyCollection : NSObject {
NSMutableDictionary *data;
}
在它的实现中,我有一个方法来像这样初始化它:
- (id) init {
if(self = [super init])
{
self.data = [[NSMutableDictionary alloc] init];
}
return self;
}
现在,当我在我的代码中创建此类的对象时,如下所示:
MyCollection *c = [[MyCollection alloc] init];
...此时Leaks实用程序显示我在尝试设置实例变量的行上的init函数中有内存泄漏.我对Objective C&Iphone完全不熟悉,我不能在这里得到什么问题.我已经阅读了内存管理指南和所有内容,但我认为我在这里遗漏了一些相当严重的内容.
任何帮助将不胜感激.谢谢你的时间.
你在用self.data =.所以最有可能是财产.如果您使用它,它很可能是复制或保留您的对象的属性.
通过电话
self.data = [[NSMutableDictionary alloc] init];
Run Code Online (Sandbox Code Playgroud)
由于alloc,NSMutableDictionary的保留计数增加,如果数据的属性具有保留或复制语句,则保留计数会再次增加.
你可以写data = [[NSMutableDictionary alloc] init];或self.data = [NSMutableDictionary dictionary].这样只会增加一次保留计数.
并且不要忘记在dealloc中释放对象.
| 归档时间: |
|
| 查看次数: |
303 次 |
| 最近记录: |