昨天分享如何拉 @IBOutlet、按空白處收回鍵盤、struct 結構的撰寫、Realm 環境安裝
今天會介紹:
func reloadData(){
users = []
let alluser = realm.objects(Datas.self)
// 當資料庫資料數為0時,也要執行表格重新整理的部分
guard alluser.count > 0 else { tableView.reloadData(); print("nil"); return }
for i in 1...alluser.count{
users.append(SetUser(setuserName: alluser[i-1].name, setuserAge: String(alluser[i-1].age)))
}
tableView.reloadData() // 重新載入 tableView
}
在 override func viewDidLoad() 底下加上reloadData()
@IBAction func inputData(_ sender: UIButton) {
let input: Datas = Datas()
// 若 Age > 0 且 Name 不為空值
if Int(ageTextField.text!) ?? 0 > 0 && (nameTextField.text != nil){
input.name = nameTextField.text ?? "" // name
input.age = Int(ageTextField.text!) ?? 0 // age
try! realm.write {realm.add(input)} // 新增資料
}
else{ alertTrigger();print("輸入的資料有誤!") }
reloadData() // 更新 TableView
}
@IBAction func deleteData(_ sender: UIButton) {
let delete = realm.objects(Datas.self)
// 若刪除的 TextField 值 > 0 且 < 資料庫的資料數+1
if Int(deleteTextField.text!) ?? 0 > 0 && Int(deleteTextField.text!)! < delete.count+1 {
// 刪除資料庫資料
try! realm.write { realm.delete(delete[Int(deleteTextField.text!)!-1]) }
}
else{ alertTrigger();print("輸入值有誤!") }
reloadData() // 更新 TableView
}
@IBAction func fixData(_ sender: UIButton) {
let fixid = realm.objects(Datas.self)
// 若修改的 TextField 的值不為空值,且資料庫數量 > 0
if (fixTextField.text != nil) && (fixid.count > 0){
let fix: Datas = Datas()
fix.id = "\(fixid[0].id)" // 原本的 id
fix.name = fixTextField.text! // 依 TextField.text 做變化
fix.age = fixid[0].age // 原本的年齡
try! realm.write {realm.add(fix, update: .all)}
}
else{ alertTrigger();print("目前沒資料!") }
reloadData() // 更新 TableView
}
@IBAction func findData(_ sender: UIButton) {
let show = realm.objects(Datas.self)
if Int(findTextField.text!) ?? 0 > 0 && Int(findTextField.text!)! < show.count+1 && show.count > 0{
// 在本地端印出資料
print("name:\(show[ Int(findTextField.text!)!-1].name),age:\(show[Int(findTextField.text!)!-1].age)")
}
else{ alertTrigger();print("輸入值有誤") }
}
明天會介紹:
敬請期待!