从核心数据模型 Swift 3 中删除一行
Posted
技术标签:
【中文标题】从核心数据模型 Swift 3 中删除一行【英文标题】:Remove ONE row from Core Data Model Swift 3 【发布时间】:2017-06-23 23:57:35 【问题描述】:我正在使用核心数据模型来存储数据。 我可以以编程方式添加数据,但删除特定行对我来说是个问题。
歌曲型号:
在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)
添加新行没有问题。我想从核心数据模型中删除特定行。 例如,假设我想删除名为 song1 的歌曲。如何删除 song1 ?
如果是SQL,从数据库中删除一行是这样的:
DELETE FROM Song WHERE name='song1';
在核心数据 - Swift 3 中,我是新手。如何删除特定行?在 Swift 3 - Core Data 中,什么相当于 SQL 中的 DELETE - WHERE 语句?
【问题讨论】:
【参考方案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()
【讨论】:
非常感谢。你是救生员。以上是关于从核心数据模型 Swift 3 中删除一行的主要内容,如果未能解决你的问题,请参考以下文章
当另一个模型正在使用该对象时,从核心数据中删除 NSManagedObject