2017-06-23 4 views
0

Ich verwende das Kerndatenmodell zum Speichern von Daten. Ich kann Daten programmatisch hinzufügen, aber das Entfernen einer bestimmten Zeile ist ein Problem für mich.Eine Zeile aus dem Kerndatenmodell entfernen. Swift 3

Song-Modell:

Song

in viewDidLoad neue Daten

let appDelegate = UIApplication.shared.delegate as! AppDelegate 
let context = appDelegate.persistentContainer.viewContext 

//add a new data 
let newSong = NSEntityDescription.insertNewObject(forEntityName: "Song", into: context) 

newSong.setValue("turk_milleti_demokrattir", forKey: "path") 
newSong.setValue("song1", forKey: "name") 

do{ 
    try context.save() 
    print("success") 

} 
catch { 
    print(error) 
} 

Kein Problem beim Hinzufügen einer neuen Zeile hinzuzufügen. Ich möchte eine bestimmte Zeile aus dem Core Data Model entfernen. Angenommen, ich möchte ein Lied mit dem Namen song1 entfernen. Wie kann ich song1 entfernen?

Wenn es SQL ist, würde eine Reihe von Datenbank zu löschen so aussehen:

DELETE FROM Song WHERE name='song1'; 

In Kerndaten - Swift 3, ich Neuling bin. Wie kann ich bestimmte Zeilen entfernen? In Swift 3 - Core Data, was entspricht DELETE - WO Anweisung in SQL?

Antwort

1

Ich hoffe, Sie haben Ihre Modellklassen automatisch in Ihrem Projekt erstellt bitte folgenden Code überprüfen, ob diese Hilfe

 let fetchRequest: NSFetchRequest<Song> = Song.fetchRequest() 
     fetchRequest.predicate=NSPredicate(format: "name = %@", "song1") 
     var fetchedItems = [Song]() 
     do{ 
      fetchedItems=try context.fetch(fetchRequest) 
     }catch{ 
      fatalError("Could not fetch") 
     } 
     for item in fetchedItems{ 
      context.delete(item) 
     } 
     context.save() 
+0

Sie so vielen Dank. Du bist Lebensretter. –

Verwandte Themen