使用NSUserDefaults保存图像

时间:2012-09-20 04:35:39

标签: iphone ios nsuserdefaults

  

可能重复:
  Size Limitation of NSUserDefault?

我正在使用NSUserDefaults保存图像。我想知道我可以使用NSUserDefaults保存的最大图像数量,或者换句话说,使用NSUserDefaults我们可以使用多少内存? 感谢

1 个答案:

答案 0 :(得分:3)

如果要保存大量图像,我建议将图像保存到文件系统中,而不是将它们保存到NSUserDefaults(或CoreData),然后将文件名保存到NSUserDefaults。

这样就无需担心任何容量限制。

保存图片:

UIImage* image = [UIImage imageNamed:@"example_image.png"];
NSData* imageData = UIImageJPEGRepresentation(image, 1.0);
NSString* imagePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"/saved_example_image.png"];
[imageData writeToFile:imagePath atomically:YES];

检索图像:

NSString* imagePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"/saved_example_image.png"];
UIImage* imageFromFileSystem = [UIImage imageWithContentsOfFile:imagePath];