更新和编辑CoreData中的实体

时间:2017-01-24 06:52:36

标签: ios swift uitableview core-data

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

enter image description here

下面的代码获取itemsOnList关系并将其存储为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! } } } } Set,然后使用Set

中的每个Item填充UITableView
validates :image_id, :size_id, :color_id,  presence: true, :on => [  :update ]

validates_associated :images, :sizes, :colors, presence: true, :on => [  :update ]

我希望用户能够更改项目的名称或数量。

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

这是一种明智的做法吗?还是有一种更简单,更简单的方法呢?

由于

1 个答案:

答案 0 :(得分:2)

contains重命名为items,以便描述它是什么。 (编辑:还将belongsTo重命名为list

因此,要访问链接到列表的项目,它将只是list.items,更加清晰。

现在,如果你想要编辑一个项目,只需将其从该组中删除并编辑掉,那么关系就不会改变。如果您想添加或删除项目,则只需再次触摸list.items