我刚刚通过仪器运行完我的应用程序,并且我泄漏了失控的_NSCFDictionaries。我没有为workoutArray设置@属性,因为它是一个私有实例变量。
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];}
任何帮助都是非常感谢的。
发布于 2011-05-18 05:34:38
正如您指出您多次运行(在同一实例上),那么问题是您在没有释放旧对象的情况下重新分配了workoutArray。在重新分配之前,您需要对旧对象执行release:
[workoutArray release];
workout Array = [[NSMutableArray alloc] init]; // etc.因为在第一次使用时,workoutArray作为ivar默认是空的,所以它应该总是正确工作的。
https://stackoverflow.com/questions/6037248
复制相似问题