RRMMigration
Objective-C
@interface RLMMigration : NSObject
Swift
@_nonSendable(_assumed) class RLMMigration : NSObject
RLMMigration
インスタンスは、スキーマ移行を容易にするために情報をカプセル化します。
Realm のバージョンを更新するときに、 RLMMigration
インスタンスはユーザー定義のRLMMigrationBlock
ブロックに渡されます。 このインスタンスは、古いデータベース スキーマと新しいデータベース スキーマ、Realm 内のオブジェクトへのアクセスを提供し、移行中に Realm を変更する機能を提供します。
-
Realm 内の指定されたタイプのすべてのオブジェクトを列挙し、各オブジェクトの古いバージョンと新しいバージョンの両方を提供します。 ブロック内では、オブジェクト プロパティにはキー付きサブスクリプションを使用してのみアクセスできます。
警告
返されるすべてのオブジェクトは現在の移行に固有のタイプであり、
className
にキャストしないでください。 代わりに、これらをRLMObject
として扱い、キー付きサブスクリプションを使用してプロパティにアクセスします。宣言
Objective-C
- (void)enumerateObjects:(nonnull NSString *)className block:(nonnull RLMObjectMigrationBlock)block;
パラメーター
className
列挙する
RLMObject
クラスの名前。 -
移行されている Realm にタイプ
className
のRLMObject
インスタンスを作成して返します。value
引数はオブジェクトにデータを入力するために使用されます。 キーと値に準拠したオブジェクト、NSJSONSerialization
のメソッドから返された配列または辞書、または管理されているプロパティごとに 1 つの要素を含む配列にすることができます。 必須 プロパティが存在せず、それらのプロパティがデフォルト値で定義されていない場合は、例外がスローされます。value
引数としてNSArray
を渡す場合、すべてのプロパティが存在し、有効で、モデルで定義されたプロパティと同じ順序にある必要があります。宣言
Objective-C
- (nonnull RLMObject *)createObject:(nonnull NSString *)className withValue:(nonnull id)value;
パラメーター
className
作成する
RLMObject
クラスの名前。value
オブジェクトを入力するために使用される値。
-
移行中に Realm からオブジェクトを削除します。
このメソッドは、
-[enumerateObjects:block:]
に渡されるブロック内から呼び出すことが許可されます。宣言
Objective-C
- (void)deleteObject:(nonnull RLMObject *)object;
パラメーター
object
移行される Realm から削除されるオブジェクト。
-
指定されたクラスのプロパティの名前を
oldName
からnewName
に変更します。宣言
Objective-C
- (void)renamePropertyForClass:(nonnull NSString *)className oldName:(nonnull NSString *)oldName newName:(nonnull NSString *)newName;
パラメーター
className
プロパティの名前を変更するクラスの名前。 このクラスは、古い Realm スキーマと新しい Realm スキーマの両方に存在する必要があります。
oldName
名前を変更するプロパティの古い永続プロパティ名。 新しい Realm スキーマによって定義されるクラス内に、この名前のプロパティが存在しないようにしてください。
newName
名前を変更するプロパティの新しい永続プロパティ名。 古い Realm スキーマによって定義されているクラス内に、この名前のプロパティが存在しないようにしてください。