質問: 画像をアプリ内に保存しようとしております。 現状Realmを使用しているのですが、16MBを超える場合クラッシュしており悩んでおります。 CoreDataやUserDefaultのような他のものに変えたほうがよろしいでしょうか? Realmで画像の保存はこちらを参考にしました
回答: Realmには16MBを超えるプロパティを保存することはできません。仕様です。 UserDefaultsはそもそもデータベースの機能は持ってないので要件を満たせるかどうかわかりませんが、UserDefaultsは起動時にすべてをメモリにロードするので、多くの画像を保存する場合、メモリを圧迫しますし、起動が遅くなります。 CoreDataはデータのサイズによる制限はないので、要件を満たしていると思いますが、そもそもバイナリデータは検索もソートも不可能なため、データベースに格納するメリットはほとんどありません。 画像の本体は別途ファイルとして保存し、RealmやCoreDataなどには保存先を示すパスを格納するのが一般的です。