Help us understand the problem. What is going on with this article?

RealmSwift入門編

More than 3 years have passed since last update.

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()
}

まとめ

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

hide0101
hamee
happy mobile , easy e-commerce
http://next-engine.net/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away