我使用ASIHTTPRequest库下载图片,我将图片存储在NSMutableDictionnary(key = url,value = UIImage)中,这使我可以一次下载每个视图所需的图片。这部分效果很好。

现在,我想将名为“ imagesDownloaded”的NSMutableDictionnary存储在iPhone内存中,以便为我的所有应用程序每次下载一次图像,由于此代码,我做到了

UIImage *img = [[UIImage alloc] initWithData:[request responseData]];
[imagesDownloaded setValue:img forKey:request.url.description];
userDatas = [NSUserDefaults standardUserDefaults];
[userDatas setValue:imagesDownloaded forKey:@"Pictures"];
[userDatas synchronize];


但是,当我这样做时,它不起作用:

NSLog(@"%@", [userDatas objectForKey:@"Pictures"]);


该值始终为“ null”。

怎么了?

谢谢

最佳答案

正如其他人所说,您不能将图像直接保存到NSUserDefaults

尽管您可以将其另存为编码的字符串或可以保存在NSUserDefaults中的其他内容,但是由于图像的数据比正常的NSUserDefaults数据大得多,因此如果将图像保存到其中,则对性能不利。

最好的方法是将图像作为文件保存到iOS的文件系统中,然后将图像的路径保存到NSUserDefaults中。

关于ios - 通过NSUserDefaults将UIImage存储在iPhone内存中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7179305/

10-14 21:34