我已经编写了一个利用Xcode附带的sqlite数据库的应用程序。它在Mac上运行良好,但是当我选择iPhone作为模拟器时,该应用程序(在iPhone上)无法读取数据库数据。我是否需要对访问sqlite数据库的代码进行编码,而不是在Mac上对其进行访问的代码?
这是我的功能,用于从在选择器视图中使用的数据库中获取数据。当我使用iPhone(通过USB链接到计算机)时,不会显示此选择器视图。但是,当我运行任何其他列出的模拟器时,它就会填充]
struct Gender {
let gender:String
}
var genderCode = [Gender]()
func readGenderCode(){
//database setup
let fileURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false) .appendingPathComponent("OTC.sqlite")
//opening the OTC database
if sqlite3_open(fileURL.path, &db) != SQLITE_OK {
print("error opening database")
}
//get data by query
let queryString = "SELECT gender from gender"
//statement pointer
var stmt2:OpaquePointer?
//preparing the query
if sqlite3_prepare(db, queryString, -1, &stmt2, nil) != SQLITE_OK {
let errmsg = String(cString: sqlite3_errmsg(db)!)
print("error preparing read: \(errmsg)")
return
}
//go through gender table records
while(sqlite3_step(stmt2) == SQLITE_ROW) {
let gc = String(cString: sqlite3_column_text(stmt2,0))
//populate the array
genderCode.append(Gender(gender: String(describing: gc)))
}
}
我已经编写了一个利用Xcode附带的sqlite数据库的应用程序。它在Mac上运行良好,但是当我选择iPhone作为模拟器时,该应用程序(在iPhone上)无法读取数据库数据。我需要...
此行为,在数据库中看不到数据的地方,通常只是意味着它是空的。