Удаление основного элемента данных - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь реализовать функцию удаления карт fla sh из колоды пользовательских карт fla sh, но у меня возникли проблемы со стороной CoreData. Что это должно сделать, это l oop через сохраненные карты, и если он совпадает с желаемой картой, которую нужно удалить, то мы удалим ее из текущей колоды и сохраним контекст, кто-нибудь знает, что идет не так? используя точки останова, я могу подтвердить, что оператор if действительно выполняется, поэтому он имеет лог c внутри

do {
    self.fetchedCards = try context.fetch(Cards.fetchRequest())
    for card in self.fetchedCards {
        if(self.termLabel.text == card.term){
        self.managedDeck?.removeFromCards(card)
        ad.saveContext()
        break
        }
     }
 } catch {
   }

Ответы [ 3 ]

1 голос
/ 11 февраля 2020

для удаления всех данных вы можете использовать эту функцию

func deleteAllData(entity: String) {

    let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    let managedContext = appDelegate.managedObjectContext
    let fetchRequest = NSFetchRequest(entityName: entity)
    fetchRequest.returnsObjectsAsFaults = false

    do
    {
        let results = try managedContext.executeFetchRequest(fetchRequest)
        for managedObject in results
        {
            let managedObjectData:NSManagedObject = managedObject as! NSManagedObject
            managedContext.deleteObject(managedObjectData)
            print("Deleted")
        }

    } catch let error as NSError {
        print(error)
    }
}

ИСПОЛЬЗОВАНИЕ:

deleteAllData(entity: "your Entity name")
1 голос
/ 12 февраля 2020
var cards = try! context.fetch(Cards.fetchRequest())

for card in cards {
    if (self.termLabel.text == card.term) {
        context.delete(card)
    }
}
try! context.save()
0 голосов
/ 10 февраля 2020

в операторе if, мне нужно context.delete(card) вместо self.managedDeck?.removeFromCards(card)

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