我使用Facebook图形将用户的图像加载到iOS应用程序。 然后将图像放在UIView中以显示它。
如果无法使用互联网连接,并且可以通过互联网从Facebook获取图片,我想提供相同的图片。
如何保存图像:
以后如何检索?
答案 0 :(得分:1)
您正在谈论图像缓存 - 请记住,您不能在下载图像时无限存储图像(您的应用程序最终可能占用过多的磁盘空间)。您需要定义一些标准来清除所有这些数据 - 未使用或可能过时的数据 - 这取决于您。有很多方法可以解决缓存问题,只有谷歌它,我相信你会找到一些有用的东西。
至于存储图像 - 你想要做的是获取UIImage的数据(通过使用UIImageJpegRepresentation
或UIImagePNGRepresentation
等功能)。这些函数将返回一个NSData实例,该实例可以存储在NSUserDefaults(不是图像缓存的位置)或缓存目录中的文件上(更好,并且不会让Apple有充分的理由拒绝您的应用程序存储错误的操作)。
另外,不要不小心尝试在FBProfilePictureView实例上调用这些函数 - 这只是Facebook为显示个人资料图片而创建的类(实际上是一个UIView,它有一个配置文件图像的UIImageView子视图。在这个UIImageView中你可以获得UIImage本身)。 How can I convert FBProfilePictureView to an UIImage?
祝你好运答案 1 :(得分:0)
以下是使用NSUserDefaults
进行缓存的示例//保存
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:myImage];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:data forKey:@"yourKeyImage"];
[defaults synchronize];
//获取
NSData *data = [[NSUserDefaults standardUserDefaults] objectForKey:@"yourKeyImage"];
NSData *received = [NSKeyedUnarchiver unarchiveObjectWithData:data];
UIImage *image = [UIImage imageWithData:received];