Каждый раз, когда я пытаюсь получить изображение, оно просто говорит, что файл не существует.Я сохранил имя файла в своей базе данных и пытаюсь получить изображение таким образом.Я не уверен, является ли сохранение его через каталог документов правильным способом, но не знаете другого способа сделать это?
func getImage(){
var db: OpaquePointer?
var statement: OpaquePointer?
let fileManager = FileManager.default
let fileUrl = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
.appendingPathComponent("RateappDatabase10.sqlite")
if sqlite3_open(fileUrl.path, &db) != SQLITE_OK {
print("error opening database")
return
} else {
print("database open VC4")
}
if sqlite3_prepare_v2(db, "select PostID, Post from Post", -1, &statement, nil) != SQLITE_OK {
let errmsg = String(cString: sqlite3_errmsg(db)!)
print("error preparing select: \(errmsg)")
}
while sqlite3_step(statement) == SQLITE_ROW {
let PostID = sqlite3_column_int(statement, 0)
print("PostID = \(PostID); ", terminator: "")
if let cString = sqlite3_column_text(statement, 1) {
let Post = String(cString: cString)
if (PostID == 2){
print(PostID, Post)
let imageName = Post
let imagePath = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString).appendingPathComponent(imageName)
print(imagePath)
if fileManager.fileExists(atPath: imagePath){
DisplayImagePost.image = UIImage(contentsOfFile: imagePath)
}else{
print("Panic! No Image!")
}
sqlite3_reset(statement)
if sqlite3_finalize(statement) != SQLITE_OK {
let errmsg = String(cString: sqlite3_errmsg(db)!)
print("error finalizing prepared statement: \(errmsg)")
}
statement = nil
}
}
}
if sqlite3_close(db) != SQLITE_OK {
print("error closing database")
}else{
print("database closed")
}
db = nil
}
func saveImage(imageName: String){
//create an instance of the FileManager
let fileManager = FileManager.default
//get the image path
let imagePath = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString).appendingPathComponent(imageName)
print(imagePath)
//get the image we took with camera
let image = ImageView2.image!
//get the PNG data for this image
let data = image.pngData()