我正在编写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
感谢您的帮助。
Ysee
答案 0 :(得分:1)
从我可以在您的代码中看到,您正在存储数据库中图像的完整路径,例如。 "在/ var /移动/容器/数据/应用/ ... ID-APP ... /文档/图像/ JPEG_201506162_101128_IOS_99804574.jpg" 。从iOS8开始,文件夹结构发生了变化 - 每次更新应用程序或在开发过程中安装新版本时,路径中的UDID都会发生变化。这就是为什么要存储图像的相对路径,例如。 " / images / JPEG_201506162_101128_IOS_99804574.jpg" 然后使用NSSearchPathForDirectoriesInDomains
方法获取Documents目录。