iphone - 使用NSArray组件时发生内存泄漏

标签 iphone objective-c ios memory-leaks

我正在使用带有Leaks模板的Instruments应用程序运行,它告诉我该行存在泄漏:

NSArray *tempFavs = [tempFavString componentsSeparatedByString:@"|"];

我见过其他一些人也遇到类似的问题,但还没有任何解决方案。似乎该数组应该自动释放,我不必担心。我分配的所有数组都在dealloc方法中释放。这是所有相关代码:
NSArray *tempFavoritesArray = [appPreferences arrayForKey:[NSString stringWithFormat:@"%@ %@ favorites", server, project]];
favoritesArrayDisplay = [[NSMutableArray alloc] initWithObjects:nil];
cenXsArray = [[NSMutableArray alloc] initWithObjects:nil];
cenYsArray = [[NSMutableArray alloc] initWithObjects:nil];
viewScalesArray = [[NSMutableArray alloc] initWithObjects:nil];
currentPresetsArray = [[NSMutableArray alloc] initWithObjects:nil];
rastersArray = [[NSMutableArray alloc] initWithObjects:nil];
empty = NO;
selected = NO;

if ([tempFavoritesArray count] == 0 || tempFavoritesArray == nil)
{
    [favoritesArrayDisplay addObject:@"No favorites saved."];
    empty = YES;
}

for (int i=0; i<[tempFavoritesArray count]; i++)
{
    NSString *tempFavString = [NSString stringWithString:[tempFavoritesArray objectAtIndex:i]];
    NSArray *tempFavs = [tempFavString componentsSeparatedByString:@"|"];        

    if ([tempFavs count] > 2)
    {
        [favoritesArrayDisplay addObject:[tempFavs objectAtIndex:0]];
        [cenXsArray addObject:[tempFavs objectAtIndex:1]];
        [cenYsArray addObject:[tempFavs objectAtIndex:2]];
        [viewScalesArray addObject:[tempFavs objectAtIndex:3]];
        [currentPresetsArray addObject:[tempFavs objectAtIndex:4]];
        [rastersArray addObject:[tempFavs objectAtIndex:5]];
    }
}

谁看过这个吗?

最佳答案

所有泄漏都告诉您,该行代码分配的一个或多个对象后来被泄漏。它并没有显示导致实际泄漏的代码行,而是显示了后来导致泄漏的分配的代码行。

即您可能过度保留了tempFavs数组中的字符串之一,并且泄漏将其标识为泄漏的分配。

首先,尝试“构建和分析”。如果那不能解决问题,请使用“分配”工具准确找出泄漏的对象以及保留/释放的对象。

关于iphone - 使用NSArray组件时发生内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7166273/

相关文章:

ios - 'dump' 核心数据堆栈的最佳方法?

iphone - 用粉笔效果画线( cocoa / cocoa 触感)?

iphone - 将 iPhone 应用程序转换为 iPad 所需的帮助

c# - 将 MasterDetailPage 的背景设置为透明

iphone - Objective-c -> 结构运算符

objective-c - 双指针的OCMock参数匹配

ios - 在剩余的数字中,我想选择一些数字,但基于某个计数器变量,其值是随机确定的

ios - 用于 Paypal token 的 Paypal iOS SDK

objective-c - 创建一个像 iOS 邮件的 "To"字段一样工作的 UITextField

ios - 显示应用程序首次打开的日期