首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >内存泄漏initWithContentsOfFile

内存泄漏initWithContentsOfFile
EN

Stack Overflow用户
提问于 2011-05-18 05:16:53
回答 1查看 533关注 0票数 0

我刚刚通过仪器运行完我的应用程序,并且我泄漏了失控的_NSCFDictionaries。我没有为workoutArray设置@属性,因为它是一个私有实例变量。

代码语言:javascript
复制
NSString *Path = [[NSBundle mainBundle] bundlePath];
NSString *DataPath = [Path stringByAppendingPathComponent:@"data.plist"];
NSArray *rawDump = [[NSArray alloc] initWithContentsOfFile:DataPath];
workoutArray = [[NSMutableArray alloc] init];

for (NSDictionary *dict in rawDump){
    [workoutArray addObject: dict];
}

[rawDump release];

我在-dealloc中发布workoutArray

代码语言:javascript
复制
 - (void)dealloc {
[workoutArray release];
[managedObjectContext release];
[df release];
[super dealloc];

}

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-18 05:34:38

正如您指出您多次运行(在同一实例上),那么问题是您在没有释放旧对象的情况下重新分配了workoutArray。在重新分配之前,您需要对旧对象执行release

代码语言:javascript
复制
[workoutArray release];
workout Array = [[NSMutableArray alloc] init]; // etc.

因为在第一次使用时,workoutArray作为ivar默认是空的,所以它应该总是正确工作的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6037248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档