今天会分享如何搭配 Realm 实作出资料管理系统,然後用 TableView 显示。
成品:
在 Storyboard 上先拉好所需的物件
拉线到 ViewController ( @IBOutlet )
// inputdata
@IBOutlet weak var nameTextField: UITextField!
@IBOutlet weak var ageTextField: UITextField!
@IBOutlet weak var inputButton: UIButton!
// deletedate
@IBOutlet weak var deleteTextField: UITextField!
@IBOutlet weak var deleteButton: UIButton!
// fixdata
@IBOutlet weak var fixTextField: UITextField!
@IBOutlet weak var fixButton: UIButton!
// finddata
@IBOutlet weak var findTextField: UITextField!
@IBOutlet weak var findButton: UIButton!
@IBOutlet weak var tableView: UITableView!
在 ViewController 档里写一个 struct 函数,用来定义宣告型态
struct SetUser {
var setuserName : String?
var setuserAge : String?
init(setuserName: String, setuserAge:String){
self.setuserName = setuserName
self.setuserAge = setuserAge
}
}
在 ViewController 内加入
var users = [SetUser]()
由於透过 textField 输入值,因此当模拟器的键盘跳出时,会没有对应的程序使它收起键盘,故在 override func viewDidLoad() 底下新增键盘收起的功能。
// 按空白处收回键盘
let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(dismissKeyBoard))
// to Replace "TouchesBegan"
self.view.addGestureRecognizer(tap)
在 override func viewDidLoad() 外新增键盘收起的 @objc
// 按空白处收回键盘
@objc func dismissKeyBoard() { self.view.endEditing(true) }
写一个 alert 提示框,用来告知使用者输入的数值有误
// 提示框
func alertTrigger(){
let alertController = UIAlertController(title: "提示", message: "请确认输入的资料,按确认关闭!", preferredStyle: .alert)
let confirmAction = UIAlertAction(title: "确认", style: .default, handler: nil)
alertController.addAction(confirmAction)
self.present(alertController, animated: true, completion: nil)
}
在撰写功能前,须先将 Realm 环境装好,可参考以下连结:
环境装好後,就可以 import RealmSwift
了
在 ViewController 内加入
let realm = try! Realm()
在专案底下 New Group / New File / 选 Cocoa Touch Class
在 Datas.swift 档里写资料的储存格式
import UIKit
import Foundation
import RealmSwift
class Datas: Object {
@objc dynamic var id = UUID().uuidString // key(设置key可以加快查询的速度)
@objc dynamic var name = "" // 姓名
@objc dynamic var age = 0 // 年龄
override static func primaryKey() -> String? {
return "id"
}
}
在 ViewController 的 override func viewDidLoad() 底下 print 出资料库位置
print("fileURL: \(realm.configuration.fileURL!)")
选取後,开启档案位置
开启後画面如下
明天会介绍:
敬请期待!
>>: Day 24:「Switch 也要换游戏片啦~」- Slot 插槽
都已经千辛万苦的学会CSS了,不用用这个技能不是就太浪费了吗? 对,本篇文就是要来看看怎麽在低代码平...
前言 当我们已经可以进入shioaji这个厨房,却发现用来烹饪的厨具都锁在架上,我们只能用一些简单的...
What is Amazon Macie? Macie是一项全代管的服务,它透过机器学习来辨别你的S...
写在前面 除了 Day 01 的 Tobymini 页面管理,可以和同事之间互相分享网页之外, 有时...
今天选个大资料集,来试试看BM25的语义搜寻。(据说BM25不必先做”断词处理”,说错了,是不必处理...