2017-10-07 18 views
1

RealmオブジェクトUserDetailsに新しいプロパティを追加しようとしています。ここに私の試みは、次のとおりです。レルムオブジェクトに新しいプロパティを追加する方法は?

class CustomerDetails: Object { 
    dynamic var customer_id = 0 
    dynamic var customer_name = "" 
} 

今私はすでに以前に作成されているオブジェクトUserDetailsに新しいプロパティ「COMPANY_NAME」を追加する必要があります。既存のRealmオブジェクトに新しいものを追加するには?

答えて

1

二つの方法:

  1. だけでシミュレータからあなたのアプリを削除して再度実行してください。レルムオブジェクトのプロパティを変更するたびに、既存のデータベースは新しいオブジェクトと互換性がなくなります。 まだ開発段階にいる間は、単にシミュレータ/デバイスからアプリを削除してもう一度起動することができます。

  2. はAppDelegateのdisFinishLaunchWithOptionsメソッドでこのコードを書く:let config = Realm.Configuration( schemaVersion: 1, migrationBlock: { migration, oldSchemaVersion in if (oldSchemaVersion < 1) { // Nothing to do! // Realm will automatically detect new properties and removed properties // And will update the schema on disk automatically } }) Realm.Configuration.defaultConfiguration = config let realm = try! Realm()

私はあなたが二番目に従うことをお勧めします。

3

レルムモデルにプロパティを追加するだけですが、保存されたデータを新しい形式に更新するには、migrationを指定する必要があります。これは、スキーマが変更されたことレルムを告げるあなたのRealm.ConfigurationschemaVersionを設定し、オブジェクトを既存のための新しいプロパティを初期化しmigrationBlockを提供することを含む

(おそらく空の文字列を設定することによって)。アプリの次の起動時に、レルムは自動的に移行を実行し、それによって保存されたデータを新しいスキーマに更新します。それを行うには

関連する問題