如何在NSUserDefaults中存储图像?

时间:2016-02-09 10:14:52

标签: ios objective-c nsuserdefaults

面对一个问题,如何在NSUserDefaults中存储图像,图像包含这样的网址(www.example.com/1.png),如何存储图像可以帮助我。 这是我的代码,

listBannerArray =[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];

imageArray = [listBannerArray valueForKey:@"mainbanner"];
NSLog(@"%@",imageArray);

NSUserDefaults *imageDefaults = [NSUserDefaults standardUserDefaults];
        [imageDefaults setObject:imageArray forKey:@"kPrefKeyForMainBanner"];
        NSLog(@"image :%@",[imageDefaults objectForKey:@"kPrefKeyForMainBanner"]);

这里listBannerArray是我的总反应,imageArray是我的images数组。请帮忙!

提前致谢。

3 个答案:

答案 0 :(得分:3)

在NSUserDefaults中保存图像:

[[NSUserDefaults standardUserDefaults]setObject:UIImagePNGRepresentation(image) forKey:key];

To retrieve an image from NSUserDefaults:

NSData* imageData = [[NSUserDefaults standardUserDefaults] objectForKey:key];
UIImage* image = [UIImage imageWithData:imageData];

答案 1 :(得分:1)

您可以阅读如何执行此类操作in this post,但再次 - 这不是最佳做法

正确方法,例如check this

答案 2 :(得分:0)

您可以存储和检索NSUserDefaults中的图像,如下所示:

注意: -

1.如果您有UIImage对象,则需要使用UIImagePNGRepresentation存储.png图像。

2.对于.jpg / .jpeg UIImageJPEGRepresentation(有损压缩)如果使用小于1.0的compressionQuality值,则可能会丢失一些图像质量。

[[NSUserDefaults standardUserDefaults]setObject:UIImagePNGRepresentation(image) forKey:@"yourKey"];

要从NSUserDefaults检索图像,您可以从NSData获取它:

NSData* imageData = [[NSUserDefaults standardUserDefaults] objectForKey:@"yourKey"]; 
UIImage* image = [UIImage imageWithData:imageData];