ios:领域迅捷无缘无故地引发RLMException

时间:2019-10-31 01:39:58

标签: ios swift iphone realm

我尝试使用Realm以快速的语言将对象保存到数据库中,但是总是会遇到这样的异常

  

“ RLMException”,原因:“表没有列

我遵循互联网上有关如何根据Realm进行课堂教学的规则,但从未解决过这个问题。

需要保存到数据库的对象类:

import Foundation
import RealmSwift

class GoTCharacter: Object{ 
   @objc dynamic var name: String = ""
   @objc dynamic var gender: String = ""
   @objc dynamic var aliases: [String] = []

   convenience init(withName name: String, gender: String, aliases: [String]) {
      self.init()
      self.name = name
      self.gender = gender
      self.aliases = aliases
   }
}

引发异常的代码(realm.add()):

let realm = try! Realm()
try! realm.write {
    realm.add(GoTCharacter(withName: "Jon Snow", gender: "Male", aliases: [
    "Lord Snow"]))
}

1 个答案:

答案 0 :(得分:1)

Realm不支持这样的数组属性。替换为:

@objc dynamic var aliases: [String] = []

具有以下内容:

let aliases = List<String>()

并调整您的代码以使用aliases属性的新类型,例如在便利构造器中:

convenience init(withName name: String, gender: String, aliases: [String]) {
    self.init()
    self.name = name
    self.gender = gender
    self.aliases.append(objectsIn: aliases)
}