今天來介紹一下如何在手機本地存取資料庫,跟先前介紹過的UserDefault不同的地方在於UserDefault是利用Key-Value作為資料讀取的依據,而Realm則是能夠完整地定義資料表,那麼就開始吧!
由於Realm是第三方所提供之套件,所以必須自行安裝,CocoaPod即可進行安裝
首先pod init
產生一個podfile,接著在podfile中加入
pod 'RealmSwift'
再來下指令將套件安裝至專案中
pod install
接著打開.xcworkspace
檔就可以開始了!
首先建立資料表,只要建立一個class再定義裡面的變數即可。
class Dog: Object {
@objc dynamic var id = ""
@objc dynamic var name = ""
@objc dynamic var age = 0
override static func primaryKey() -> String {
return "id" //設定id這個欄位為主鍵
}
}
let realm = try! Realm()
let myPuppy = Dog()
myPuppy.id = "1"
myPuppy.name = "White"
myPuppy.age = 6
try! realm.write {
realm.add(myPuppy)
}
另外必須注意,由於id這個欄位為主鍵,所以必須為唯一值。
let realm = try! Realm()
let myPuppy = realm.objects(Dog.self).filter("id = '1' AND name = 'White'").first
filter()利用正規表示發作資料的篩選
myPuppy.name = "Black"
try! realm.write {
realm.add(myPuppy,update:true)
}
另外,如果想利用add()方法更新資料,必須確保此資料擁有主鍵,才會有功能。
try! realm.write {
realm.delete(myPuppy)
}