search
LoginSignup
29

More than 5 years have passed since last update.

posted at

updated at

Organization

RealmSwift入門編

RealmSwift入門編

今更感がやばいですがRealmを触ってみたいと思い今回はRealmの概要と導入編を書きます。

Realmとは?

11013065_656713921098259_7867821350336580662_o.jpg

RealmはCoreDataやSQLiteに変わると注目されている次世代のモバイルデータベースです。
またRealmはiOS,Androidの両方でサポートしています。
そしてSQLiteより速く動作するみたいです。
ベンチマークが公式サイトに載ってます。
ちなみに2016年3月2日〜4日の日程で開催されるtry!SwiftのDIAMONDスポンサーです。

インストール方法

公式サイトによると、インストール方法はDynamic FrameworkとCocoaPods、Carthageでインストールできます。
今回はCocoaPodsでインストールしてみます。
Podfileのアプリケーションとテストのターゲットに

# Uncomment this line to define a global platform for your project
# Uncomment this line if you're using Swift
platform :ios, '8.0'
use_frameworks!

target 'RealmToDo' do
 pod 'RealmSwift'
end

target 'RealmToDoTests' do
 pod 'RealmSwift'
end

pod 'RealmSwift'を追記します。
Podfileのあるディレクトリで

pod install 

を実行しCocoaPodsによって作成された.xcworkspaceファイルを開きます。
CocoaPodsをインストールされてない方はこちらの記事が参考になると思います。

モデル定義

Realmでのモデル定義は以下のようにクラスを作成します。

import RealmSwift
class Dog: Object {
    dynamic var name = ""
}

オブジェクトの生成・追加

上記のモデルクラスを用いると

import RealmSwift
let newDog = Dog()
//オブジェクトを生成しプロパティに値をセット
newDog.name = "Pochi"
// デフォルトRealmを取得
let realm = try! Realm()
// トランザクションを開始して、オブジェクトをRealmに追加
try! realm.write {
  realm.add(newDog)
}

になります。

オブジェクトの更新

オブジェクトを更新するにはトランザクションの中でプロパティに値を代入するだけです。

let realm = try! Realm()
try! realm.write {
  newDog.name = "taro"
}

オブジェクトの削除・全削除

オブジェクトを削除するにはトランザクションの中でRealm().deleteメソッドに削除対象のオブジェクトを渡します。

let newDog = Dog()
let realm = try! Realm()
try! realm.write {
  realm.delete(newDog)
}

全削除する場合はトランザクションの中でRealm().deleteAllメソッドを使用します。

try! realm.write {
  realm.deleteAll()
}

まとめ

今回は、とりあえず導入とオブジェクトの生成・追加・更新・削除までをざっくりとまとめてみました。次回は検索クエリについて書きたいと思います。

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
What you can do with signing up
29