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
实例的?你怎么知道这个特殊的方法会导致膨胀并最终崩溃?

同意,发布更多的循环。我已经发布了更多的循环,并添加了对问题的编辑,以及更多信息。希望这有帮助。我没有看到循环,只有方法定义。