【发布时间】:2017-08-16 09:33:24
【问题描述】:
我很难在 Swift 3 中加载图像文件。 代码如下:
do {
let imageData = try Data(contentsOf: imageUrl2.asURL())
} catch {
print ("loading image file error")
}
而当前的Url String是:
file:///Users/veikoherne/Library/Developer/CoreSimulator/Devices/889A08D5-B8CC-458C-99FF-643A4BA1A806/data/Containers/Data/Application/F64ED326-7894-4EE7-AA3B-B1BB10DF8259/Documents/img2017-03-23 17:39:24.jpg
显然我已经检查过这个文件存在并且是有效的图像。它总是告诉我“加载图像文件错误”。有人有在 Swift 3 中加载本地数据的经验吗?
提到的答案是使用 NSData 对象,可能是 Swift 2。当前的 Swift 3 拒绝将 NSData 连接到 Data,这就是我必须使用 Data 的原因。
【问题讨论】:
-
imageUrl2来自哪里?asURL()是什么?您可能会打印实际捕获的 error 而不是通用字符串。 -
@vadian 提出了一些很好的问题。还有一个:...加载本地数据的经验... - 本地到什么?你的项目,一个框架,操作系统文件系统......???我将再添加一个选项来查看您的 URL - 这是在照片库中吗?相信我,有几个地方,每个地方都有一个“最好”的方法来到达它们。
-
答案是使用 NSData,这在 Swift 2 中是可以的。Swift 3 要求我使用 Data 而不是 NSData..
-
to @vadian imageUrl 是文件的字符串,由于数据对象需要 URL,我必须使用 .asURL() 将字符串转换为 Url。它不是照片库,它是我存储在应用程序文档目录中的图像。显然我正在使用最新的 xCode 来拥有 Swift 3。