我正在尝试将图像从.write恢复到文件。
以下是我用来保存它的代码:
view.pdfData.writeToURL(NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first!.URLByAppendingPathComponent("test.pdf"), atomically: true)
view.pdfData.writeToFile("test", atomically: false)
print(NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first!.path!)
以下是我试图恢复的方法:
let path: String? = NSBundle.mainBundle().pathForResource("test", ofType: "pdf", inDirectory: "DirectoryName/Images")
let imageFromPath = UIImage(contentsOfFile: path!)!
self.imageview.image = imageFromPath
但我一直在断点:
尼尔
答案 0 :(得分:0)
您需要以与写作相同的方式构建阅读路径。使用NSBundle.mainBundle().pathForResource
将查找随应用安装的应用包中的资源。
let path = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first!.URLByAppendingPathComponent("test.pdf").path
let imageFromPath = UIImage(contentsOfFile: path!)!
顺便说一下,使用!
强制展开选项通常是一个坏主意。它不允许您的应用程序优雅地处理获取零值并导致崩溃(如您发布的那个)。正确的方法就是这样。
if let documentsURL = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first,
let path = documentsURL.URLByAppendingPathComponent("test.pdf").path,
let imageFromPath = UIImage(contentsOfFile: path) {
print("Loaded Image")
} else {
print("Unable to load image")
}