Objective c NSMutableArray释放/销毁
函数中的以下代码(在循环中运行)导致程序使用越来越多的内存,直到崩溃。我做错了什么Objective c NSMutableArray释放/销毁,objective-c,memory-management,nsmutablearray,Objective C,Memory Management,Nsmutablearray,函数中的以下代码(在循环中运行)导致程序使用越来越多的内存,直到崩溃。我做错了什么 - (void) processTrackValues:(NSMutableArray*) tags { NSImage* trackArt = [tags objectAtIndex:5]; NSMutableArray* tempArtArray = [[NSMutableArray alloc] init]; [tempArtArray addObject:trackAr
- (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
指向的trackArt
对象是在此函数之外创建的NSImage
- 我正在分配和发布
循环的每个迭代(因为循环的每个迭代都会调用该函数)tempArtArray
tempArtArray
?如果是这样的话,您能在循环之外分配它一次并重用它吗
trackArt
对象是如何创建的?这个方法(现在发布了两次)毫无意义。在方法的末尾,该方法完全没有完成任何工作
发布真实代码
特别是,您实际上是如何创建
NSImage
实例的?你怎么知道这个特殊的方法会导致膨胀并最终崩溃?同意,发布更多的循环。我已经发布了更多的循环,并添加了对问题的编辑,以及更多信息。希望这有帮助。我没有看到循环,只有方法定义。