七天學會swift - realm 資料庫 Day3


大綱

  • 介紹
  • 前置作業
  • Realm Browser
  • 新增、查詢資料

介紹

Realm 是個跨平台的資料庫,目前支援的語言包括 Java、Swift、ObjectC、JavaScript 等等。
而新手在剛接觸 swift 資料庫時, Realm 常會被拿來和 SQLite 做比較,簡單來說,兩者差別在於:

Realm

  • 優點:入門門檻較低,適合初學者。
  • 缺點:因必須透過自有的引擎轉換語法,固效能上不及 SQLite。

SQLite

  • 優點:效能遠大於 Realm,適合較大型的專案使用。
  • 缺點:入門門檻相對較高,因必須熟知 SQL 語法,及 ios 的對應框架

前置作業

  1. 開啟終端機輸入指令安裝 Cocoapods
    $ sudo gem install cocoapods

  2. 接著我們新增一個新的 Xcode 專案,並回到終端機,在專案根目錄下輸入下列指令創建一個 Podfile 文件
    $ pod init

  3. 用 Vim 開啟 Podfile 文件,加入以下字段
    pod 'RealmSwift'
    加入後如下:

  4. 回到專案跟目錄下輸入安裝 Realm 的指令
    pod install

  5. 完成


Realm Browser

我們除了可以用 print 的方式印出資料庫的內容外,也可以下載 Realm Browser 工具,幫助我們視覺化的管理資料。
下載方式也非常簡單,至 Apple Store 搜尋 Realm Browser 即可!


新增、查詢資料

  • 新增資料
  1. 創建一個訂單類別,並繼承 RealmSwift,及建立相關屬性
    import UIKit
    import RealmSwift
    import Foundation
    class Order : Object{
    @objc dynamic var id = UUID().uuidString
    @objc dynamic var name = ""
    @objc dynamic var price = 0
    @objc dynamic var date = Date()
    override static func primaryKey() -> String? {
        return "id"
    }
    }
    
  2. 在 ViewController.swift 的 viewDidLoad() 下加入以下語法
    let realm = try! Realm()            // 生成訂單
    let NewOrder: Order = Order()
    NewOrder.name = "MacBook Pro 2017 "    // 訂單名稱
    NewOrder.price = 47000                 // 訂單金額
    try! realm.write {                  // 新增資料
         realm.add(NewOrder)
    }
    print("fileURL: \(realm.configuration.fileURL!)")     // 印出資料庫的位址
    
  3. 執行,我們可以用 Realm Browser 查看資料庫,開啟印出的位置

#realm #swift #iOS







你可能感興趣的文章

Week3 - 挑戰題:貪婪的小偷 Part2

Week3 - 挑戰題:貪婪的小偷 Part2

[ Note ] Git 交作業

[ Note ] Git 交作業

[3] 語法觀念 & 基本資料型別

[3] 語法觀念 & 基本資料型別






留言討論