Swift - 删除CoreData行[重复]

Posted

技术标签:

【中文标题】Swift - 删除CoreData行[重复]【英文标题】:Swift - Delete CoreData row [duplicate] 【发布时间】:2018-05-23 14:28:18 【问题描述】:

我尝试从 coredata 中删除一行。我处理了这一行,但我没有删除。当我尝试 context.delete() 时,它需要 () 中的 NSManagedObject。我如何将此结果转换为 NSManagedObject ?

func deleteElement(postUid:String)

    let appDel:AppDelegate = (UIApplication.shared.delegate as! AppDelegate)
    let context:NSManagedObjectContext = appDel.persistentContainer.viewContext

    let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Posts")
    let predicate = NSPredicate(format: "postUid == %@", postUid as CVarArg)
     fetchRequest.predicate = predicate

    do 

        let result = try context.fetch(fetchRequest)

        print("Result \(result)")



        try context.save()

     catch 
        print("Error \(error)")
    


// 结果打印

Result [<Posts: 0x6080002901d0> (entity: Posts; id: 0xd000000000640000 <x-coredata://9A330E28/Posts/p25> ; data: 
item = "<relationship fault: 0x60c00022b900 'item'>";
lastMessageTime = "2018-05-23";
parentUid = nil;
postUid = "15e43d16";
title = Title;
userUid = ".."; )]

【问题讨论】:

【参考方案1】:
let result = try context.fetch(request)
for object in result 
    let obj = object as! NSManagedObject
    context.delete(obj)


try context.save()

你基本上需要获取你的对象,然后一个接一个地删除它们。然后你像往常一样保存你的上下文。

【讨论】:

以上是关于Swift - 删除CoreData行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中从 Core Data 中删除数据时删除 UITableView 行?

swift - NSPREDICATE 失败 [重复]

Swift UITableView 删除行项 - tableview 数据源是 Core Data

导入 cvs 但基于特定列中的零删除行[重复]

在 Swift 中删除表格视图的核心数据记录(行)

Swift:如何避免 CoreData 中的重复条目以使用 JSON 数组实现?