我用这个保存图像:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *filePath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Image.png"];
[UIImagePNGRepresentation(image) writeToFile:filePath atomically:YES];
然后,我在模拟器中退出应用程序。然后我尝试用这个加载图像:
let imageName = "Image.png"
let image = UIImage(named: imageName)
i1.image = image
我可以想到图片无法加载的两个原因:
答案 0 :(得分:3)
UIImage(named: imageName)
无法从Documents目录中获取图像。它仅从应用程序本身(应用程序包)内部获取图像,这是一个非常不同的地方。应用程序包的内部不是您保存它的地方(也不可能在那里保存任何内容),因此UIImage(named: imageName)
空手而归。它无法找到该文件,原因很简单,因为找不到该文件。
如果要从Documents目录中读取图像文件,请完全按照与编写文件相同的方式阅读:通过形成文件路径(或文件URL)并将其作为磁盘数据读取。例如,在形成文件路径后,调用UIImage的init(contentsOfFile:)
。