Я использую ниже код для чтения &, записывая код в каталоге документов, моя проблема заключается в том, что при загрузке изображений большого размера приложение приносит предупреждение о памяти и крушение иммиграции так как с этим справиться.Как справиться с предупреждением о памяти во время записи и чтения изображений из каталога документов iOS
- (void)cacheImage:(UIImage *)image forRequest:(NSURLRequest *)request
{
NSData *data=UIImageJPEGRepresentation(image, 1.0);
[self writeImageData:data forPlayListID:[self cachedFileNameForKey:request.URL.absoluteString]];
}
-(UIImage *)getImageFromForPlayListID:(NSString *)strID{
NSString *docDirPath=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
docDirPath = [docDirPath stringByAppendingPathComponent:@"/MyFolder"];
NSString *filePathCellImg = [NSString stringWithFormat:@"%@/%@",docDirPath,strID];
NSData *data=[NSData dataWithContentsOfFile:filePathCellImg];
UIImage *musicImage = [UIImage imageWithData:data];
return musicImage;
}
-(void)writeImageData:(NSData *)imageData forPlayListID:(NSString *)strID{
NSError *error;
NSString *docDirPath=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *dataPath = [docDirPath stringByAppendingPathComponent:@"/MyFolder"];
if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
[[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error];
// [[NSFileManager defaultManager] removeItemAtPath:dataPath error:&error];
NSString *filePathCellImg = [NSString stringWithFormat:@"%@/%@",dataPath,strID];
[imageData writeToFile:filePathCellImg atomically:NO];
if (![[NSFileManager defaultManager] fileExistsAtPath:filePathCellImg]) {
[[NSFileManager defaultManager] createFileAtPath:filePathCellImg
contents:imageData
attributes:nil];
}
}