Основные данные - FetchedResults <Item>не имеет элемента 'remove' - PullRequest
0 голосов
/ 14 июля 2020

У меня есть несколько элементов в списке, в который я добавляю функцию смахивания для удаления. При использовании функции удаления я получаю сообщение об ошибке, сообщающее мне, что объект FetchedResults<tem> не имеет члена 'remove'. Что происходит?

@Environment(\.managedObjectContext) var moc
@FetchRequest(entity: Item.entity(), sortDescriptors:[]) var items: FetchedResults<Item>

...

List {
    ForEach(items, id: \.self) { (item: Item) in
        Text(item.title ?? "New Item")
            .font(.headline)
}
    .onDelete(perform: deleteItems)
}

func deleteItems(at offsets: IndexSet) {
    self.items.remove(atOffsets: offsets)
}

1 Ответ

1 голос
/ 14 июля 2020

Используйте метод delete для managedObjectContext. Также не забудьте сохранить после удаления.

func deleteItems(at offsets: IndexSet) {
    for index in offsets {
        let item = items[index]
        moc.delete(item)
    }
    do {
        try moc.save()
    } catch {
        // handle the Core Data error
    }
}
...