LoginSignup
28
32

More than 5 years have passed since last update.

【Swift】RealmSwiftをインストール(CocoaPods)から実行まで

Last updated at Posted at 2016-03-25

RealmSwift

CoreData & ObjectiveRecordで何ら不自由なく使えていたためいままで、試してませんでしたがtry! SwiftのDIAMONDスポンサーになるほどなので、ここは試しに使ってみようと思います。

Xcodeで新規プロジェクトを作成する

今回はRealmExampleと言う名前で作成しました。
スクリーンショット 2016-03-22 16.12.09.png
※CoreDataは使わないのでUse Core Dataのチェックを外します。

CocoaPodsをインストール

RealmSwiftをインストールするにはcocoapodsが便利なので
まずはcocoapodsをインストールします。

cocoapodsinstall.cmd
sudo gem install -n /usr/local/bin cocoapods
pod --version

-n /usr/local/binはEl Capitanから必須です。詳細は下記
MacOSX El Capitanでcocoapodsインストールが出来ない時の対処法

RealmSwiftをインストール

pod init

Xcodeプロジェクトを作成して
コマンドラインにてプロジェクトフォルダディレクトリpod initを行うとPodfileが作られるのでvim Podfileして下記のようにする

use_frameworks!

target 'RealmExample' do
pod 'RealmSwift'
end

import RealmSwiftでどうしてもエラーになる方はCleanしてみてください。
(Shift+Command+K) & (Option+Shift+Command+K)

pod install

最後にpod installを行います。
処理が完了したら[プロジェクト名].wordkspaceというファイルが作成されています。
プロジェクトが開いていたら一旦閉じて[プロジェクト名].wordkspaceを開いて下さい。
スクリーンショット 2016-03-22 13.24.11.png
※CocoaPodsを使用する場合は常にこの[プロジェクト名].wordkspaceで開いて下さい。

RealmSwiftを試す

モデルクラス

User.swift
import RealmSwift

class User: Object {
    dynamic var id = 0
    dynamic var name = ""
    dynamic var createdAt: Double = 0
}

オブジェクトの作成、更新、参照

UIViewController.swift
import RealmSwift

import UIKit
import RealmSwift

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        //Realmオブジェクト生成
        let realm = try! Realm()

        //作成
        let tanaka = User()
        tanaka.id = 1
        tanaka.name = "田中"
        tanaka.createdAt = NSDate().timeIntervalSince1970
        try! realm.write {
            realm.add(tanaka)
        }

        //作成
        let yamada = User()
        yamada.id = 2
        yamada.name = "山田"
        yamada.createdAt = NSDate().timeIntervalSince1970
        try! realm.write {
            realm.add(yamada)
        }

        //作成
        let suzuki = User()
        suzuki.id = 3
        suzuki.name = "鈴木"
        suzuki.createdAt = NSDate().timeIntervalSince1970
        try! realm.write {
            realm.add(suzuki)
        }

        //参照
        let users = realm.objects(User).filter("id != 0").sorted("id")
        for user in users {
            print(user.name)
        }

        //更新
        let hoge = realm.objects(User).last!
        try! realm.write {
            hoge.name = "ほげ"
        }

        //参照
        for user in realm.objects(User).filter("id != 0").sorted("id") {
            print(user.name)
        }

        //削除
        let lastUser = realm.objects(User).last!
        try! realm.write {
            realm.delete(lastUser)
        }

        //参照
        for user in realm.objects(User).filter("id != 0").sorted("id") {
            print(user.name)
        }
    }
}

Userオブジェクトを作成(田中、山田、鈴木)して参照
最後のオブジェクト(鈴木)を「ほげ」に更新して参照
最後のオブジェクト(ほげ)を削除して参照

printデバッグの結果はこちらになります。

print.output
田中
山田
鈴木
田中
山田
ほげ
田中
山田

まず「田中、山田、鈴木」が出力され、
鈴木をほげに更新したため「田中、山田、ほげ」に、
ほげを削除したので「田中、山田」のみになりました。

まとめ

今回、備忘録としてRealmSwiftインストールから試すまでをやってみました。
新しいMacでCocoaPodsのインストールで少々ハマりました。
最初はReamlでObjective-Cのライブラリしかないのかと思ってましたが途中でRealmSwiftがあることに気付きました。
あとimport RealmSwiftNo such errorで挫折しそうでしたが、Cleanするだけでした!

下記の記事がとても参考になりました。
Realm for Swift まとめ完全版

28
32
7

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
28
32