IOS: Realm Swift выбрасывает RLMException без причины - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь использовать 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 Ответ

2 голосов
/ 31 октября 2019

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)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...