我刚刚通过乐器运行我的应用程序,我正在泄漏_NSCFDictionaries失控。我没有为workoutArray设置@property,因为它是一个私有实例变量。
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
- (void)dealloc {
[workoutArray release];
[managedObjectContext release];
[df release];
[super dealloc];
}
非常感谢任何帮助。
答案 0 :(得分:3)
当您指示不止一次(在同一个实例上)运行时,问题是您在不释放旧对象的情况下重新分配workoutArray
。在重新分配之前,您需要release
旧对象:
[workoutArray release];
workout Array = [[NSMutableArray alloc] init]; // etc.
作为ivar的workoutArray
默认情况下是第一次为零,这应该始终正常。