2015このバージョン(0.96)で読み書きを行ったRealmファイルは以前のバージョンで開くことができなくなります。既存アプリケーションに対して更新を適用する場合は特に注意してください。0.96.0をリリースしました。このバージョンにはNULLプロパティのサポート、コレクションに対する集計関数(count/min/max/sum/avg)のサポート、SwiftにおいてRealmCollectionTypeの導入とエラーハンドリングの改善、および不具合の修正が含まれます。NULLサポートこのバージョンではすべてのプロパティの型に対して、NULL値を格納できるようになりました。Objective-CNSString、NSDate、NSData、型のプロパティは、デフォルトでnilが代入可になります。nilの代入を禁止する場合は、モデルの+requiredPropertiesのクラスメソッドをオーバーライドし、nilの代入を禁止するプロパティの名前を返すようにします。旧バージョンで作成されたファイルにアクセスした時に、+requiredPropertiesで指定したプロパティ以外は、自動的にはnil可に変換されます。数値型のプロパティについてはNSNumberを利用することでnil可を示します。NSNumber<RLMInt>、NSNumber<RLMBool>、NSNumber<RLMFloat>、NSNumber<RLMDouble>のように実際の数値の型を指定することができます。@[@"requiredString"];}@endSwiftString、NSDate、NSData型のプロパティは一般の型と同様にOptionalまたは非Optionalのどちらかを指定することができます。残念ながら、数値型の各種については直接Optionalを指定することをサポートすることができませんでした。#2147)をご覧ください。そのため、数値型でnilを扱うにはRealmOptionalでラップする必要があります。RealmOptional<Bool>(nil)}List型のプロパティと同様に、RealmOptional型のプロパティはletで宣言する必要があり、dynamicを付けてはいけません。RealmOptionalでラップした実際の値を取得・設定するにはvalueプロパティを使用します。ファイルフォーマットの自動変換このバージョンでRealmファイルを開くと、自動的に新しいファイルフォーマットに変換されます。読み込みだけで書き込みを行わなかったとしても変換は行われますので注意してください。この自動変換では下記の操作が行われます。すべてのインデックスが作り直されます。(IntとStringの型にのみ適用されます)すべてのNSString、NSDate、NSData型のプロパティは+requiredPropertiesを指定しない限り、NULL代入可に変換されます。新しいフォーマットのバージョン番号がファイルに書き込まれます。逆に旧バージョンのRealmで作成されたファイルは新しいバージョンで読み込むことができません。この変換はファイルの書き込みを必要とするため、もしアプリケーションにRealmファイルをバンドルして読み込み専用で利用している場合は、新しいファイルフォーマットに更新して置き換える必要があります。注意:このファイルフォーマットの変換を元に戻すことはできません。Queries)コレクションオブジェクト(RLMArray/List)に対する集計関数@count、@min、@max、@sum、@avgがサポートされました。詳しい使い方はRealmのWebサイトで公開しているNSPredicateチートシートをご覧ください。Objective-Cでは長らくRLMArrayとRLMResultsは共通のプロトコル(RLMCollection)の機能を利用することができました。このバージョンから、Swiftでも同様の機能が利用できるように拡張されました。ListとResultsクラスは共にRealmCollectionTypeプロトコルに準拠するように宣言されています。wrapperが提供されているので、Swiftであっても異なるレイアウトのオブジェクトを同じコレクションに格納することができます。現在のRealmではトランザクションをコミットした際に、ディスクの空き状況が不足している場合、クラッシュを引き起こすことがあります。それによってデータが破損することがありませんが、ユーザ体験としては非常に良くありません。この変更によって、commitWrite、commitWriteTransaction、write、transactionWithBlockがディスクの空き容量が不足している際には、エラーを返すようになりました。細かな改善RLMRealmとRealmにisEmptyプロパティを追加しました。Realmに1つでもオブジェクトが保存されているかどうかを示します。不具合の修正8MB以上16MB以下のサイズのNSDataを保存した時にアサーションに失敗することがある問題を修正しました。1対1または1対多の関連のプロパティが削除されたマイグレーションをロールバックした際にアサーションに失敗することがある問題を修正しました。ファイルのオープンに失敗した際のエラーオブジェクトにパスの情報を含めるようにしました。モデルのサブセットを指定してRealmをオープンした後にサブセットを指定せずに開くとクラッシュする問題を修正しました。...)で作成する際のエラーを修正しました。モデルのサブセットとして与えられたクラスが関連を持つとき、その関連のクラスがサブセットに含まれていないときは例外が発生するようになりました。複数のスレッドから短期間にに何回も同じRealmファイルを開いたときにクラッシュすることがある不具合を修正しました。いくつかのエラーメッセージで間違った関数名を表示していた問題を修正しました。subscription。