Ios 更新和编辑CoreData中的实体

Ios 更新和编辑CoreData中的实体,ios,swift,uitableview,core-data,Ios,Swift,Uitableview,Core Data,我正在开发一个应用程序,用户可以在其中创建一个包含许多项目的列表。我的CoreData模型如下所示 下面的代码获取列表。包含关系,并将其存储为项目列表集,然后使用集中的每个项目填充UITableView func getItemsOnList(){ let app = UIApplication.shared.delegate as! AppDelegate let context = app.persistentContainer.viewContext //fe

我正在开发一个应用程序,用户可以在其中创建一个包含许多项目的列表。我的CoreData模型如下所示

下面的代码获取
列表。包含
关系,并将其存储为
项目列表
集,然后使用集中的每个项目填充UITableView

func getItemsOnList(){

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

    //fetchRequest to get the List
    let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "List")
    let predicate = NSPredicate(format: "title == %@", listName)
    fetchRequest.returnsObjectsAsFaults = false
    fetchRequest.predicate = predicate

    if let fetchResults = try? context.fetch(fetchRequest){
        if fetchResults.count > 0 {
            for listEntity in fetchResults {
                let list = listEntity as! List
                print(list.title as Any)
                itemsOnListSet = list.contains!
            }
        }
    }
}
func getItemsOnList(){
将app=UIApplication.shared.delegate设为!AppDelegate
让context=app.persistentContainer.viewContext
//获取获取列表的请求
let fetchRequest=NSFetchRequest(entityName:“列表”)
let谓词=NSPredicate(格式:“title==%@”,listName)
fetchRequest.returnsObjectsAsFaults=false
fetchRequest.predicate=谓词
如果let fetchResults=try?context.fetch(fetchRequest){
如果fetchResults.count>0{
对于fetchResults中的Listenty{
let list=listEntity as!list
打印(列表.标题如有)
itemsOnListSet=list.contains!
}
}
}
}
我希望用户能够更改项目的名称或数量

我这样做的第一个方法是,因为我已经有了NSSet项目,我只需更改我想要的项目,然后用新的保存旧的list.contains

这是一个明智的方法还是有一个更简单更简单的方法


谢谢

重命名
包含
,因此它描述了它是什么。(编辑:也将
belongsTo
重命名为
list

因此,要访问链接到列表的项目,只需
list.items
,就更清楚了

现在,如果你想编辑一个项目,只要把它从集合中拿出来并编辑掉,关系就不会改变。如果要添加或删除项目,只需再次触摸列表项目