最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

iOS App 實作(19) SQLite(part 3)

XAMPP下载 admin 732浏览 0评论
 Description:
前兩篇講解了 SQLite 語法並將之實作成 Swift code 後,本篇為整個 App 的實作也是這系列的最後一篇。
此 demo 透過兩個 TextField 來讓使用者輸入名字和身高並將輸入的資料用 TableView 呈現,點選每個欄位可以更新資料或是刪除。

Component:

UINavigationController
TextField
UIButton
Highlight function:
建立及開啟名為 sqlite3.db 之資料庫檔案,裡面有包含一張名為 UserInfoTable 之表單。該表單內含三個 columns(id, name, height)。

let dbTableName: String = “UserInfoTable”

override func viewDidLoad() {

let destinationUrl = getDirectoryPath().appendingPathComponent(“sqlite3.db”)
db = Sqlite(path: destinationUrl.absoluteString)
if db != nil {
let dbStatus = db!.createTable(dbTableName,
columnsInfo: [“id integer primary key autoincrement”,                                                  “name text”,                                                                            “height double”])
}

func getDirectoryPath() -> URL {
// create document folder url
let fileDirectoryURL = FileManager.default.urls(for: .documentDirectory,
in: .userDomainMask).first!
return fileDirectoryURL
}

}
在將資料讀取並顯示在 TableView 中時由於資料庫表單內不只含一筆資料,須透過回傳之 statement 來判斷是否是該 SQL 語法執行後回傳的最後一筆資料。而將每筆資料中不同 column 取出的方法是透過呼叫 sqlite3_column()。

func fetchData(offset: Int) {
let statement = db!.fetch(“UserInfoTable”, cond: nil, sortBy: nil, offset: offset)
var fetchResult: [UserInfo] = [UserInfo]()

while sqlite3_step(statement) == SQLITE_ROW {
let id = sqlite3_column_int(statement, 0)
let name = String(cString: sqlite3_column_text(statement, 1))
let height = sqlite3_column_double(statement, 2)

fetchResult.append(UserInfo.init(id: id, name: name, height: height))
}

}

转载请注明:XAMPP中文组官网 » iOS App 實作(19) SQLite(part 3)

您必须 登录 才能发表评论!