Mil*_*ec8 1 iphone memory-leaks objective-c ios
我正在使用Leaks模板运行Instruments应用程序,它告诉我在线路上有泄漏:
NSArray *tempFavs = [tempFavString componentsSeparatedByString:@"|"];
Run Code Online (Sandbox Code Playgroud)
我见过其他一些人有类似的问题,但我没有看到任何解决方案.似乎这个数组应该是自动释放的,我不应该担心它.我分配的所有数组都在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]];
}
}
Run Code Online (Sandbox Code Playgroud)
谁看过这个吗?
所有泄漏都告诉您,该行代码分配的一个或多个对象稍后会泄露.它没有显示导致实际泄漏的代码行,而是显示创建后来泄漏的分配的代码行.
也就是说,你可能过度保留了tempFavs数组中的一个字符串,并且泄漏将其识别为泄漏分配.
首先,尝试"构建和分析".如果这不能解决问题,请使用Allocations工具确切地确定泄漏的对象以及保留/释放的对象.