ポジティブ丸メガネ

3年目エンジニアです。

Swift: 初心者のデータベース導入[Realm]

AndroidではよくデータベースSQLiteを使っていましたが、iOSでは何を使うのか全くわからなかったので、調べてみるといろいろ出てきましたが、主に以下の2つだったような。

  • Core Data
  • Realm

なんかググったら、トップに「CoreDataはもう古い?これからはRealm」とか出てきたのと、RealmはAndroidでも使えるそうなので、Realm採用!

導入時に参考にしたサイトは以下。
Swift Docs - Realm is a mobile database: a replacement for SQLite & Core Data
qiita.com
qiita.com

とりあえずCocoaPods使って入れました。導入はめちゃくちゃ簡単。データベース扱うのめちゃくちゃ簡単でびっくりしました。

しかし、問題発生。モデルを変更する必要が出てきたので、マイグレーションしなきゃと思って上記URLを参考にマイグレーションしてみたけど、うまくいかない。→ DBファイル消せばいいや! → 消す → データベースをopen()できません!とか言われちゃって、困った。自動で生成してくれるんじゃなかったのかよおおおおおおおおお。そこでひらめき、データベースファイルはdefault.realmというファイルなのですが、シミュレータごとに作成されているようだったので、シミュレータをiPhone6からiPhone5Sに変更して動かしてみると、いけました、よかった。消されてたら自動生成してくれないのを調べてみると、なんとなくバグっぽい感じでした。まだまだ発展途上のRealmを使うのは、初心者には冒険かもしれませんね。とりあえず英語を厭わない心が必要です。

まだ問題があって、Realm入れると何故が実機で動かなくなるんですよね。「-lc++のライブラリが見つからないよ」って言われて。リンクしてるんですけどね〜未だ解決できていません。困った。ご存じの方がいらっしゃいましたら、助けてください。