我的函数中的以下代码(在循环中运行)导致我的程序在崩溃之前使用越来越多的内存。我做错了什么?
- (void) processTrackValues:(NSMutableArray*) tags {
NSImage* trackArt = [tags objectAtIndex:5];
NSMutableArray* tempArtArray = [[NSMutableArray alloc] init];
[tempArtArray addObject:trackArt];
[tempArtArray release];
}
我也尝试过:
- (void) processTrackValues:(NSMutableArray*) tags {
NSImage* trackArt = [tags objectAtIndex:5];
NSMutableArray* tempArtArray = [[NSMutableArray alloc] init];
[tempArtArray addObject:trackArt];
[trackArt release];
[tempArtArray release];
}
编辑:以下是有关周围代码的更多信息。我还为样本添加了更多代码以获得更大的图片。
trackArt
是指向此函数的其中一个参数的NSImage
指针。NSImage
指向的trackArt
对象是在此函数之外创建的。tempArtArray
(因为循环的每次迭代都会调用函数)答案 0 :(得分:2)
(现在发布两次)方法是无稽之谈。在方法结束时,该方法完全没有完成。
发布真实代码。
特别是,您如何实际创建NSImage
个实例?你怎么知道这种特殊方法导致膨胀并最终崩溃?
答案 1 :(得分:0)
你可以发布周围的循环代码以帮助获得更大的图片吗?
您是否为每次循环迭代分配和释放tempArtArray
?如果是这样,您可以在循环外部分配一次并重复使用它吗?
如何创建trackArt
个对象?