无法使用 UIImage 或 NSData 加载图像
Can't load image with UIImage or NSData
我正在编写一个 Swift 应用程序,我无法使用 UIImage(contentsOfFile: imgPath)
或 NSData(contentsOfFile: imgPath)
加载应用程序中保存的图像
private func loadData() {
println("load DATA DANGEROUS")
let (dangerous, err) = SD.executeQuery("SELECT * FROM Dangerous")
if err == nil && !dangerous.isEmpty {
var tabPhoto : [DangerousImage] = []
for d in dangerous {
let desc = d["description"]!.asString()!
let idDangerous = d["id"]!.asInt()!
println("iddangerous : \(idDangerous)")
let (photos, error) = SD.executeQuery("SELECT * FROM Photo WHERE idDangerous = ?", withArgs: [idDangerous])
if error == nil {
for photo in photos {
let imgPath = photo["photoPath"]!.asString()!
println(imgPath)
let uimage = UIImage(contentsOfFile: imgPath) // fatal error: unexpectedly found nil while unwrapping an Optional value
tabPhoto.append(DangerousImage(img: uimage!, path: imgPath))
}
}
println("add ENTRY")
self.tabEntry.append(Entry(descript: desc, tab: tabPhoto))
}
}
println("TAB ENTRY : \(tabEntry)")
}
我的图片存在于此路径中:/var/mobile/Containers/Data/Application/...ID-APP.../Documents/images/JPEG_201506162_101128_IOS_99804574.jpg
感谢您的帮助。
看
从您的代码中可以看出,您正在将图像的完整路径存储在数据库中,例如。 "/var/mobile/Containers/Data/Application/...ID-APP.../Documents/images/JPEG_201506162_101128_IOS_99804574.jpg"。自 iOS8 以来,文件夹结构发生了变化 - 每次更新应用程序或在开发过程中安装新版本时,路径中的 UDID 都会发生变化。这就是为什么应该存储图像的相对路径,例如。 "/images/JPEG_201506162_101128_IOS_99804574.jpg"然后用NSSearchPathForDirectoriesInDomains
方法获取Documents目录
我正在编写一个 Swift 应用程序,我无法使用 UIImage(contentsOfFile: imgPath)
或 NSData(contentsOfFile: imgPath)
private func loadData() {
println("load DATA DANGEROUS")
let (dangerous, err) = SD.executeQuery("SELECT * FROM Dangerous")
if err == nil && !dangerous.isEmpty {
var tabPhoto : [DangerousImage] = []
for d in dangerous {
let desc = d["description"]!.asString()!
let idDangerous = d["id"]!.asInt()!
println("iddangerous : \(idDangerous)")
let (photos, error) = SD.executeQuery("SELECT * FROM Photo WHERE idDangerous = ?", withArgs: [idDangerous])
if error == nil {
for photo in photos {
let imgPath = photo["photoPath"]!.asString()!
println(imgPath)
let uimage = UIImage(contentsOfFile: imgPath) // fatal error: unexpectedly found nil while unwrapping an Optional value
tabPhoto.append(DangerousImage(img: uimage!, path: imgPath))
}
}
println("add ENTRY")
self.tabEntry.append(Entry(descript: desc, tab: tabPhoto))
}
}
println("TAB ENTRY : \(tabEntry)")
}
我的图片存在于此路径中:/var/mobile/Containers/Data/Application/...ID-APP.../Documents/images/JPEG_201506162_101128_IOS_99804574.jpg
感谢您的帮助。
看
从您的代码中可以看出,您正在将图像的完整路径存储在数据库中,例如。 "/var/mobile/Containers/Data/Application/...ID-APP.../Documents/images/JPEG_201506162_101128_IOS_99804574.jpg"。自 iOS8 以来,文件夹结构发生了变化 - 每次更新应用程序或在开发过程中安装新版本时,路径中的 UDID 都会发生变化。这就是为什么应该存储图像的相对路径,例如。 "/images/JPEG_201506162_101128_IOS_99804574.jpg"然后用NSSearchPathForDirectoriesInDomains
方法获取Documents目录