RealmSwift
最近 RealmSwift のバージョンが上がったらしく、それに伴ってデータベースに保存するオプショナル型の扱いが変わりました。
調べてもドキュメントは 10.5.0 くらいまでしか対応してなかったので自分で新しいコーディング方法を調べました。
RealmProperty
今までRealmOptionalを使っていたものがRealmPropertyに変わりました。それだけでなく、ちょっとだけ宣言の方法も変わったのでそれもご紹介。
// Deprecatedlet zipcode = RealmOptional<Int>()
// Modernlet zipcode = RealProperty<Int?>()要するにRealmOptionalをRealmPropertyに書き換えて、明示的にオプショナルであることを宣言するようにすれば良い。
IntだけじゃなくてBoolにも使える、便利。
Optionalだけじゃなくて他にもアップデートがあって、UUIDやNSUUIDも新たに保存できるようになったようです。
Extension の書き方
型がIntではなくなったので Extension の書き方も変わりました。
例えば、強制的にアンラップするような以下のコードは次のように書き換えられます。
// Deprecatedextension RealmOptional where Value == Int { var intValue: Int { guard let value: Int = self.value else { return 0 } return value }}
// Modernextension RealmProperty where Value == Int? { var intValue: Int { guard let value: Int = self.value else { return 0 } return value }}まあそれだけで特に面白いところはなかったのですが。
記事は以上。