Realmを使ってみた

結果から言うとすごく簡単にデータの保存と読み込みを行うことができました。CoreDataの100倍使いやすいと思います。

CocoaPodで入れる

cocoaPodのインストール

sudo gem install cocoapods
pod setup

Podfileの生成

pod init

Realmを入れる!!!

何かしらの方法でpodfileを開く私はいつもopenを使います。vimとか使えません

open Podfile

コメントとかいろいろ入ってると思いますがこんな感じに書き換えます。

プロジェクト名のところは自分のプロジェクト名にしてください。Testは作ってなかったら消しちゃって大丈夫です。

use_frameworks!

target 'プロジェクト名' do
    pod 'RealmSwift'
end

target 'プロジェクト名Tests' do
    pod 'RealmSwift'
end

プロジェクトにインストール

pod install

白い.xcworkspaceを開いてViewControllerでimport RealmSwiftしてビルドが通れば成功です。

Realmモデルの生成

データベース(Realm)に保存するためのモデルを作成します。

名前と年齢だけのシンプルなModelを作成しました。継承しているObjectはRealmSwiftのクラスなのでimportを忘れずに!

import RealmSwift

class TestModel: Object{
   @objc dynamic var name: String? = nil
   @objc dynamic var age: Int = 0
}

Realmデータ保存、取得、削除

データの保存

try! realm.write {
            realm.add(値を入れたモデル)
        }

データの取得

let dataList = realm.objects(自作のモデルクラス.self)

データの削除

try! realm.write() {
            realm.delete(削除したいデータ)
        }

ミニマムサンプル

同じデータを保存してprint出力してすぐに削除するRealmのミニマムサンプルです。

Realmの使いやすさに感動した管理人はるみ23歳です。

import UIKit
import RealmSwift

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        //データの生成
        let testModel = TestModel()
        testModel.name = "はるみ"
        testModel.age = 23
        
        let realm = try! Realm()

        setData(model: testModel, realm: realm)
        getData(realm: realm)
        
        
    }
    //データの保存
    func setData(model: TestModel, realm: Realm){
        try! realm.write {
            realm.add(model)
        }
    }
    //データの取得
    func getData(realm: Realm){
        let dataList = realm.objects(TestModel.self)
        for data in dataList {
            print("名前:\(data.name!),年齢:\(data.age)歳")
            
        }
        deleteData(dataList: dataList, realm: realm)
    }
    //データの削除
    func deleteData(dataList: Results<TestModel>, realm: Realm){
        try! realm.write() {
            realm.delete(dataList)
        }
    }
}