2011-07-01 40 views
0

我有内存泄漏,无法弄清楚。基本上,我在这里做的是将图像拉到Mutable Dictionary并返回字典。NSData内存泄漏...指向NSConcreteData!

- (NSMutableDictionary *)loadImageDataGroup:(NSUInteger)index { 

int lim = 5; 
int sta = 0; 
if (index > lim) { 
    sta = index-lim; 
} 
int fin = (((lim*2)+1)+sta); 
if (fin > [self imageCount]) { 
    sta = ([self imageCount]-((lim*2)-1)); 
    fin = [self imageCount]; 
} 

BOOL firstTime = NO; 
if ([imagesLoaded count] == 0) { 
    firstTime = YES; 
} 

NSMutableDictionary *tempDict = [[[NSMutableDictionary alloc] init] autorelease]; 

for (int i = sta; i < fin; i++) { 

    NSString *imageName = [self imageNameAtIndex:i]; 

    if ([imagesLoaded valueForKey:imageName] == nil) { 

     // This is the Memory Leak...at least that is where Leaks is pointing me. 
     NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:imageName]]; 
     [tempDict setObject:imageData forKey:imageName]; 

    } else { 
     [tempDict setObject:[imagesLoaded valueForKey:imageName] forKey:imageName]; 
    } 

} 

return tempDict; 

}

的泄漏发生在NSData的= *的imageData点,并且当我拉起在泄漏,它指向NSConcreteData。

+1

如果你看到NSData的泄漏,这并不一定意味着泄漏是由该行造成的。这可能是因为整个字典被泄露,或者某个地方的某个人保留了NSData并且没有释放它。就内存而言,我看不出任何代码立即出错。 –

回答