これは SwiftAdventCalendar 12日目の記事です.
遅くなって申し訳ないです。 記事は書いていましたが忙しくて公開できていませんでした。
この記事では 僕が RealmSwift 入門した手順を紹介します。
環境は
- Xcode version 9.1
- Swift 4
です。
プロジェクト作成
" RealmSwiftTest " という名前でXcodeプロジェクトを作成
podでRealmSwiftをインストールするためにXCodeを閉じる.
cocoapodsでRealmSwiftをインストール
作ったプロジェクトのディレクトリにターミナルで移動.
そこで
$ pod init
でpodfileを作成(cocoapods はインストール済みを想定)
podfileを編集
以下のように # 追加 と書かれているところに
pod 'RealmSwift'
を追加する. スペルミスに注意 (Realmのスペルを書き間違えてた).
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'RealmSwiftTest' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for RealmSwiftTest
pod 'RealmSwift' # 追加
target 'RealmSwiftTestTests' do
inherit! :search_paths
# Pods for testing
pod 'RealmSwift' # 追加
end
target 'RealmSwiftTestUITests' do
inherit! :search_paths
# Pods for testing
end
end
pod install
pod経由でRealmSwiftをインストール
$ pod install
でインストールできる.
なんかwarning出るけど(黄色いやつ)気にしないで進もう.
RealmSwiftが使えるか確認してみる
を開く.
新しくswiftファイルを" RealmSample.swift "という名前で作る.
[Image: file:///-/blob/SEJAAAVflKX/2GiMU1kVk7JVnxOEsJOLiA]RealmSample.swiftに
import RealmSwift
を追加.
おそらく下の画像の様にエラーがでる. なのでまずpod installしたらビルドした方が良い.
しかし、大丈夫. ビルドすればこのエラーは無くなる.
⌘ + B
を押してみよう(XCodeのビルドをするショートカット).
少し時間がかかることもあるが上のステータスバーを見ながら待とう.
たまにそれでも消えない時がある. その時は一旦 import 文を消してビルドし直そう. そしてimport文を追加してみるとうまくいった(僕の場合).
warning を取り込む
warningが出て settingのアプデートを勧められているので素直にクリックして設定をアップデート.
これでwarningは消える.
さあさあ import RealmSwift のエラーが消えたところで早速RealmSwiftを使ってプログラミングしてみよう !!
RealmSwift 入門
まずはここを参考にしてRealmSwiftの基本的な使い方を見て行こう.
Personというクラスのデータをデータベース(Realm)に保存するという目的でコードを書こう!!
オブジェクトの生成
Realmに保存する対象となるクラスはRealmSwiftのObjectクラスを継承する必要がある.
またメンバ変数には dynamicという修飾子をつけよう! ちなみにdynamicにはSwift4からは @objc という修飾子もつけなくてはならないので注意しよう(XCodeに注意されたら従おう).
class Person: Object {
@objc dynamic var name = "" // dynamicはとりあえずつける. objcから使うため?
@objc dynamic var age = 0
@objc dynamic var sec = ""
}
このPersonクラスのオブジェクトを生成しておこう.
ViewControllerあたりでPersonオブジェクトを作っておこう.
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let tanaka = Person()
tanaka.name = "田中"
tanaka.age = 23
tanaka.sex = "MALE"
}
レコードへの書き込み
次は作った tanaka オブジェクトをレコードに書き込んで保存してみる.
let realm = try! Realm()
let tanaka = Person()
tanaka.name = "田中"
tanaka.age = 23
tanaka.sex = "MALE"
try! realm.write() {
realm.add(tanaka)
}
Realm() で Use of unresolved identifier というエラーが出たらそのファイルで
import RealmSwift
し忘れていることが原因なのでちゃんと importしよう. Realmに関連するファイルには全てimport しよう.
まとめ
こんな感じでRealmSwiftの入門手順は終わりです。これからリファレンスや他の記事をみてもっと使えるように学びます。