我正在使用核心数据将网址存储到从图片选择器中获取的图片。
到目前为止,我有以下内容:
let tempImage = info[UIImagePickerControllerOriginalImage] as? UIImage
let image = UIImageJPEGRepresentation(tempImage!, 0.2)
let path = try! FileManager.default.url(for: FileManager.SearchPathDirectory.documentDirectory, in: FileManager.SearchPathDomainMask.userDomainMask, appropriateFor: nil, create: false)
let imageName = UUID().uuidString + ".jpg"
let aPath = path.path
let imagePath = (aPath as NSString).appendingPathComponent(imageName)
现在结果是我有一个路径作为字符串来保存核心数据。 但是如何将图像写入路径? 我试图使用:
let result = image!.writeToFile(path, atomically: true)
但是我得到一个错误,说类型数据的值没有成员writeToFile。还有另一种方法可以在swift 3.0中完成吗?
感谢您的帮助。
答案 0 :(得分:16)
在Swift 3中,UIImageJPEGRepresentation
创建Data
而不是NSData
。您可以使用write
代替writeToFile
。
你应该可以使用:
image.write(to: URL(fileURLWithPath: path), options: .atomic)
并将您的图片数据image
写入path
的文件。请注意,它使用URL而不是字符串文件路径,并且options参数已更改。
答案 1 :(得分:4)
在Dylansturg的帮助下,
我能够重写我的代码才能工作。以下是未来参考的代码:
do {
let result = try image?.write(to: path, options: .atomic)
} catch let error {
print(error)
}
答案 2 :(得分:0)
也许您可以尝试将UIImage对象转换为NSData对象,然后按照此链接将NSData对象写入路径:
https://developer.apple.com/reference/foundation/nsdata/1408033-writetofile?language=objc