обновление массива предметов в realm swift - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь обновить содержимое реальной базы данных, которая принимает массив.Я хотел бы обновить массив, хранящийся в нем ниже, мой код для него

class TodoListModel: Object {

    @objc dynamic var id = UUID().uuidString
    let photos = List<Data>()
    @objc dynamic var createdDate: Date?

    override static func primaryKey() -> String? {
        return "id"
    }
    let parentCategory = LinkingObjects(fromType: CategoryModel.self, property: "items")

}

В этом случае новые данные просто добавляются вместо замены предыдущего

func updateTodoList(update: TodoListModel, createdDate: Date, photo: Array<Data>) -> Void {
    update.createdDate = createdDate
    update.photo.append(objectsIn: photo)
}

1 Ответ

0 голосов
/ 11 октября 2018

Если вы хотите удалить все существующие элементы TodoListModel.photos в вашем методе updateTodoList, вам просто нужно вызвать update.photos.removeAll перед добавлением к нему содержимого входного аргумента photos.

func update(todoList: TodoListModel, createdDate: Date, photos: Array<Data>) {
    todoList.createdDate = createdDate
    todoList.photos.removeAll()
    todoList.photos.append(objectsIn: photos)
}

PS: Я также переименовал вашу функцию и ее входные аргументы в соответствии с соглашением об именах Swift и данными, которые фактически представляет каждый входной аргумент.Также нет необходимости записывать возвращаемое значение, если ваша функция возвращает Void.

...