2016-04-11 53 views
0

我的班級只有4個領域:如何字段添加到領域模型類

class List: Object { 
    dynamic var name = "" 
    dynamic var date = "" 
    dynamic var notes = "" 
    dynamic var info = "" 
} 

我要添加2個:

dynamic var website = "" 
dynamic var telephone = "" 

如果我將這些字段添加到類,然後領域給我一個錯誤,由於新的領域。如何在保存所有用戶數據的同時更新此類?

回答

4

,需要考慮兩個備選方案:

  1. 如果您的應用程序正在開發中,並沒有被釋放,那麼你就可以刪除已安裝的應用程序,並重新安裝。 Realm將在重新創建數據庫時使用更新的模型類模式。

  2. 如果您的應用程序已經發布或者您想要保留Realm文件中的數據,則可以優雅地將現有Realm升級到新架構。您可以通過performing a migration這樣做,它指示Realm更新磁盤上文件的模式以匹配應用程序中的模型類,並且讓您有機會對Realm文件中的數據進行任何修改以適應你的模型類的變化。

3

這發生在Realm使用您的模型創建內部結構。每當你需要改變你的模型(發生了很多),你需要將你當前的模型遷移到新模型。

做到這一點的方法是:

  1. 讓你想使你的數據模型
  2. 任何改變添加此應用程序(應用程序中:在應用委託didFinishLaunchingWithOptions :)

    let config = Realm.Configuration(
    
        schemaVersion: 1, //Increment this each time your schema changes 
        migrationBlock: { migration, oldSchemaVersion in 
    
         if (oldSchemaVersion < 1) { 
          //If you need to transfer any data 
          //(in your case you don't right now) you will transfer here                 
    
         } 
        }) 
    
    Realm.Configuration.defaultConfiguration = config 
    
    let realm = try! Realm() 
    
  3. 現在每次更改模式時,只需將一個模板添加到schemaVersion。當然,遷移可能會更棘手,但對於您的模型來說,這可以做到。

欲瞭解更多信息,請參閱Realm Swift Documentation

相關問題