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