Сохранить массив строк в царстве

Я использую сферу в своем приложении iOS. В моем приложении я создал объектный файл, в котором есть некоторые строковые переменные, и в нем есть один массив. Это мой класс Object для области,

class Reminder: Object {
  @objc dynamic var name = ""
  @objc dynamic var done = false
  @objc dynamic var namesArray = [String]()
}

Теперь в моем VC я передаю массив в namesArray моего класса Object.

let names : [String] = ["Ali","Hammad","Hamza"]
let textFieldReminder = (alertVC.textFields?.first)! as UITextField
let reminderItem = Reminder()       // (8)
reminderItem.name = textFieldReminder.text!
reminderItem.done = false
reminderItem.namesArray = names

// We are adding the reminder to our database
try! self.realm.write({
            self.realm.add(reminderItem)  

Теперь, когда я запускаю приложение, приложение вылетает с этими сообщениями об ошибках,

Terminating app due to uncaught exception 'RLMException', reason: 'Property 'namesArray' is declared as 'NSArray', which is not a

поддерживаемый тип свойства RLMObject. Все свойства должны быть примитивами, NSString, NSDate, NSData, NSNumber, RLMArray, RLMLinkingObjects или подклассами RLMObject. Для получения дополнительной информации см. Https://realm.io/docs/objc/latest/api/Classes/RLMObject.html. '

Как я могу хранить массив строк в моей области db?

0
источник поделиться
1 ответ

Вы не можете хранить Swift Array в магазине Realm. Вместо использования массива вы можете сделать его List<String>. И вы можете использовать метод append(objectsIn:).

class Reminder: Object {
  @objc dynamic var name = ""
  @objc dynamic var done = false
  let namesArray = List<String>()
}

Затем просто добавьте новые элементы в список, как это,

let names : [String] = ["Ali","Hammad","Hamza"]
let textFieldReminder = (alertVC.textFields?.first)! as UITextField

let reminderItem = Reminder()       // (8)
reminderItem.name = textFieldReminder.text!
reminderItem.done = false
reminderItem.append(objectsIn: names)
+2
источник

Посмотрите другие вопросы по меткам или Задайте вопрос