iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 28
0
Software Development

iOS APP開發學習筆記 系列 第 28

DAY28 本地資料庫(Realm)

  • 分享至 

  • xImage
  •  

Realm

今天來介紹一下如何在手機本地存取資料庫,跟先前介紹過的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()利用正規表示發作資料的篩選

  • 更新資料
    取出資料後可直接更改變數,並利用realm.add()
myPuppy.name = "Black"
try! realm.write {
    realm.add(myPuppy,update:true)
}

另外,如果想利用add()方法更新資料,必須確保此資料擁有主鍵,才會有功能。

  • 刪除資料
    刪除資料與更新資料類似,先取出資料接著執行
try! realm.write {
    realm.delete(myPuppy)
}

上一篇
DAY27 SVProgressHUD
下一篇
DAY29 ARKit
系列文
iOS APP開發學習筆記 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言