Swift Realm Property’*’已被添加到最新的对象模型MIGRATION中

前端之家收集整理的这篇文章主要介绍了Swift Realm Property’*’已被添加到最新的对象模型MIGRATION中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经将新的数组属性添加到R​​LMObject和
  1. public class Student: RLMObject {
  2. dynamic var id = 0
  3. dynamic var name = ""
  4. dynamic var resultList = RLMArray(objectClassName:Result.className())
  5. }
  6.  
  7. public class Result: RLMObject {
  8. }

错误日志:

Migration is required for object type ‘Student’ due to the following
errors:
– Property ‘resultList’ has been added to latest object model.

TRY失败:

  1. let configuration:RLMRealmConfiguration = RLMRealmConfiguration.defaultConfiguration()
  2.  
  3. migration.enumerateObjects(Student.className()) { oldObject,newObject in
  4. newObject!["resultList"] = RLMArray(objectClassName: Result.className())
  5. }

编辑:

  1. let configuration:RLMRealmConfiguration = RLMRealmConfiguration.defaultConfiguration()
  2. print("Realm db current version: \(configuration.schemaVersion)")
  3. configuration.schemaVersion = 1
  4. configuration.migrationBlock = {(migration:RLMMigration,oldSchemaVersion: UInt64) in
  5. print("Realm db migration start")
  6. if oldSchemaVersion < 1 {
  7. print("Schema version: 1 - Rename fields")
  8. migration.enumerateObjects(Student.className()) { oldObject,newObject in
  9. newObject!["creationDate"] = oldObject!["createdAt"]
  10. newObject!["modifiedDate"] = oldObject!["updatedAt"]
  11. }
  12. }
  13. print("Realm db migration finish")
  14. }
  15. RLMRealmConfiguration.setDefaultConfiguration(configuration)
  16. let realm = RLMRealm.defaultRealm()

解:

将您的版本更新为1

  1. configuration.schemaVersion += 1
您必须增加schemaVersion并在RLMRealmConfiguration上提供migrationBlock.在那里你可以迁移表.但是你不需要在你的具体情况下.可以自动处理属性添加.你还需要一个空块.
  1. let config = RLMRealmConfiguration.defaultConfiguration()
  2. config.schemaVersion = 1
  3. config.migrationBlock = { (migration,oldSchemaVersion) in
  4. // nothing to do
  5. }
  6. RLMRealmConfiguration.setDefaultConfiguration(config)

猜你在找的Swift相关文章