Я инициализировал изображение, например:
NSString *url=[NSString stringWithFormat:@"url/%@",[self.urlOfImagesToDownload objectAtIndex:i]];
UIImage *myImage=[[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString: url]]];
NSLog(@"%d byte of data", [[NSData dataWithContentsOfURL: [NSURL URLWithString: url]] length]);
if (myImage)
{
NSString *jpegFilePath = [NSString stringWithFormat:@"%@/%@.jpg",[self pathForDocumentDirectory],[self.idOfImagesToDownload objectAtIndex:i]];
NSData *data1 = [NSData dataWithData:UIImageJPEGRepresentation(myImage, 1.0f)];//1.0f = 100% quality
[data1 writeToFile:jpegFilePath atomically:YES];
}
Теперь, как мне освободить память NSString *jpegFilePath
и NSData *data1
А если у меня есть метод:
-(void) changeImageSlide{
totalNoOfImages=[copyOf_myGlobleArrayOfImageIds count];
if (imageCounter>=totalNoOfImages-1) {
imageCounter=0;
}
NSString *str = [NSString stringWithFormat:@"%@.jpg",[copyOf_myGlobleArrayOfImageIds objectAtIndex:imageCounter]];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fullImgNm=[documentsDirectory stringByAppendingPathComponent:[NSString stringWithString:str]];
//=(3*imageCounter+4)%25;
UIImage *img=[UIImage imageWithContentsOfFile:fullImgNm];
[mainSlideShowImageView setImage:img];
[mainSlideShowImageView setTag:[[copyOf_myGlobleArrayOfImageIds objectAtIndex:imageCounter] intValue]];
imageCounter++;
}
Он был вызван с Timer (для реализации слайд-шоу), как я могу высвободить память здесь из UIImage *img
и NSString *FullImageName
.
Наряду с этим, как быть уверенным, что после загрузки другого изображения в imageView
предыдущее изображение будет освобождено из памяти?