Realm: невозможно вызвать «добавить (_: обновление:)» со списком аргументов типа «(String)».

У меня есть следующий код

import RealmSwift
class myclass: NSObject {
  let realm = try! realm()
  @objc dynamic var id = String()

  func writeRealmLocal() {
    try! realm.write {
       realm.add(id)
    }
  }
}

Но я выдаю следующую ошибку: Невозможно вызвать 'add(_:update:)' со списком аргументов типа '(String)'

Я следую документации области, но не могу решить эту ошибку, есть идеи?

Область ошибок и Swift 4


person rxDVZ    schedule 19.08.2019    source источник


Ответы (1)


Вы неправильно используете Realm. Realm сохраняет экземпляры объектов, каждый из которых имеет тип Object. Здесь ссылка на класс.

Если вы хотите спасти себя MyClass, вы можете сделать следующее:

import RealmSwift

class MyClass: Object {
    @objc dynamic var id = String()
}

И используйте объект Realm для хранения объекта.

let realm = try! Realm()
realm.write {
 realm.add(MyClass())
}

Я предлагаю вам ознакомиться с разделом Начало работы на странице realm.io. А если вы хотите просмотреть документацию по классам, перейдите здесь

person Sandeep    schedule 19.08.2019
comment
Я только что внес это изменение, но теперь я выдаю следующую ошибку: Невозможно преобразовать значение типа "(MyClas).Type" в ожидаемый тип аргумента "Object" - person rxDVZ; 19.08.2019
comment
Преобразование NSObject в объект. Смотрите мой пост, я использую Object - person Sandeep; 20.08.2019