我有一个带有缩略图的自定义单元格,用户可以从他们的相册中选择。我知道将图像保存到 Core Data 会导致性能不佳,我应该使用文件系统。
任何人都推荐一些很好的教程。如果我不在那里存储图像,我应该在核心数据中存储什么。
我还将存储更大的图像,而不仅仅是缩略图。
我有一个带有缩略图的自定义单元格,用户可以从他们的相册中选择。我知道将图像保存到 Core Data 会导致性能不佳,我应该使用文件系统。
任何人都推荐一些很好的教程。如果我不在那里存储图像,我应该在核心数据中存储什么。
我还将存储更大的图像,而不仅仅是缩略图。
UIImage*image = [UIImage imageNamed:@"the image you wish to save.jpg"];
//build the path for your image on the filesystem
NSArray *dirPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsDir = [dirPath objectAtIndex:0];
NSString* photoName = @"imageName.jpg";
NSString *photoPath = [docsDir stringByAppendingPathComponent:photoName];
//get the imageData from your UIImage
float imageCompression = 0.5;
NSData *imageData = UIImageJPEGRepresentation(image, imageCompression);
//save the image
if(![imageData writeToFile:path atomically:YES]){
return FALSE;
}
//store the imagePath to your model
photoModal.filePathImage = photoPath;
尖端:
您的核心数据数据库中应该有两个字段thumbnailPath
::NSString
和originalPath
:NSString
使用文件管理器,您可以在特定路径上创建缩略图和原始图像。所以您将拥有: ..../thumbs/myPicture_thumb.jpg 和 ..../originals/myPicture.jpg 然后您只需将这两个路径存储到您的核心数据数据库。
当您想显示其中一个时,您只需使用UIImage
方法:imageWithContentsOfFile
就这样
您可以将图像存储Application Documents Folder
在 CoreData 或 sqlite 中,并将图像的路径保存在。参考图像及其路径。