Неоднозначная ссылка на член 'create (_: value: update :)' - PullRequest
0 голосов
/ 29 октября 2019

Я использую RealmSwift в своем проекте. При попытке обновить один из параметров существующего объекта я получаю следующую ошибку:

Неоднозначная ссылка на член 'create (_: value: update:)'

А вот код, над которым я работаю:

        let newProduct = ShoppingBagObject(value: [product.id, product.name!, product.price!, product.oldPrice!, product.weight!, count])
        try? realm?.write {
            realm?.create(newProduct, value: ["count": 3], update: .modified)
        }

Я хочу обновить только параметр 'count'.

А вот ссылка из официальной документации realm.io:

try! realm.write {
    realm.create(Book.self, value: ["id": 1, "price": 9000.0], update: .modified)
    // the book's `title` property will remain unchanged.
}

РЕДАКТИРОВАТЬ: Вот мой класс модели:

class ShoppingBagObject: Object {
    @objc dynamic var id = 0
    @objc dynamic var name = ""
    @objc dynamic var price = 0
    @objc dynamic var oldPrice = 0
    @objc dynamic var weight = 0
    @objc dynamic var count = 1

    override static func primaryKey() -> String? {
        return "id"
    }
}

Что я делаю не так?

1 Ответ

1 голос
/ 29 октября 2019

Можете ли вы попробовать

try? realm?.write {
    realm?.create(ShoppingBagObject.self, value: ["id":product.id, "count":3], update: .modified)
}

Из документов:

Если объект Book со значением первичного ключа '1' уже существует в базе данных, то этот объектбудет просто обновляться. Если он не существует, то будет создан совершенно новый объект Book и добавлен в базу данных.

Вы также можете частично обновить объекты первичными ключами, передав только подмножество значений, которые вы хотите обновить, вместе сс первичным ключом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...