我使用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/