У меня есть метод, который загружает много изображений из Интернета, а затем сохраняет их на устройство. Вот код:Распределение Iphone с NSData
-(IBAction) updateImages {
for (x=0; x<[imagesToUpdate count]; x=x+1) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];
NSMutableDictionary *tempDic = [dic objectForKey:[imagesToUpdate objectAtIndex:x]];
BOOL newDictionary = [self downloadChartForDictionary:tempDic];
[pool drain];
}
}
-(BOOL) downloadChartForDictionary:(NSMutableDictionary *)dictionary {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];
NSMutableDictionary *updatedDictionary = [NSMutableDictionary dictionaryWithDictionary:dictionary];
NSString *downloadString = [NSString stringWithFormat:@"http://www.photo.com/%@_0001.jpg",[updatedDictionary objectForKey:@"PDFName"]];
[updatedDictionary setObject:serverAIRAC forKey:@"airac"];
NSDate *date = [NSDate date];
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
formatter.dateFormat = @"MM-dd-y";
NSString *dateString = [formatter stringFromDate:date];
[updatedDictionary setObject:dateString forKey:@"date"];
[formatter release];
NSURL *url = [NSURL URLWithString:downloadString];
NSData *data = [NSData dataWithContentsOfURL:url];
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *docsPath = [paths objectAtIndex:0];
NSString *savePath = [NSString stringWithFormat:@"%@/%@^%@_%@.jpg",docsPath,serverAIRAC,[updatedDictionary objectForKey:@"airport"],[updatedDictionary objectForKey:@"PDFName"]];
BOOL downloaded = [data writeToFile:savePath atomically:YES];
[pool drain];
return YES;
}
Моя проблема заключается в том, что, когда это работает, объект NSData, данные, выделяется, но никогда не выпускали, даже когда метод updateImages закончен. В инструментах каждое загруженное изображение остается выделенным. Общее распределение продолжает расти по мере загрузки каждого изображения и, в конечном итоге, происходит сбой в памяти. Однако инструменты не сообщают об утечке, связанной с этим объектом.
Я попытался: [[NSData alloc] initWithContentsOfURL: url], а затем освободить его, но это не поможет.
Я попытался поставить пул авторесурсов только в методе updateImages и только в методе downloadChartForDictionary и ни один из них не помогает.
Я застрял на этом весь день, так что любая помощь очень ценится
Что сбивает с толку, у меня есть другой контроллер, который делает почти то же самое, и он отлично работает. – Brodie