从Core Data Model Swift 3中删除一行

时间:2017-06-23 23:57:36

标签: ios objective-c swift core-data swift3

我正在使用核心数据模型来存储数据。 我可以以编程方式添加数据,但删除特定行对我来说是个问题。

歌曲模型:

Song

在viewDidLoad中添加新数据

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)
}

添加新行没问题。我想从Core Data Model中删除特定行。 例如,假设我要删除名为 song1 的歌曲。如何删除 song1

如果是SQL,从数据库中删除行将是这样的:

DELETE FROM Song WHERE name='song1';

核心数据--Swift 3,我是新手。如何删除特定行?在 Swift 3 - 核心数据中,什么相当于SQL中的 DELETE - WHERE 语句?

1 个答案:

答案 0 :(得分:1)

我希望您的项目中自动创建模型类,如果有帮助,请查看以下代码

      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()