我正在开发一个应用程序,用户可以在其中创建一个包含许多项目的List。我的CoreData模型如下。
下面的代码获取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
validates :image_id, :size_id, :color_id, presence: true, :on => [ :update ]
validates_associated :images, :sizes, :colors, presence: true, :on => [ :update ]
我希望用户能够更改项目的名称或数量。
我这样做的第一种方式是因为我已经拥有了项目的NSSet,我只需要更改我想要的项目,然后用新的列表保存旧的list.contains。
这是一种明智的做法吗?还是有一种更简单,更简单的方法呢?
由于
答案 0 :(得分:2)
将contains
重命名为items
,以便描述它是什么。 (编辑:还将belongsTo
重命名为list
)
因此,要访问链接到列表的项目,它将只是list.items
,更加清晰。
现在,如果你想要编辑一个项目,只需将其从该组中删除并编辑掉,那么关系就不会改变。如果您想添加或删除项目,则只需再次触摸list.items
。