我在我的应用程序中使用Core Data,并处理两个实体之间的多对多关系。 我的目标是让用户通过使用tableview并让用户选择单元格来选择一个实体中的哪一个与另一个实体相关。
当创建实体的类时,“Lists”被设置为类型NSSet,这是有意义的,因为它不需要被排序,并且我不希望其中任何其他实体有多个。 / p>
当我想向NSSet添加项目时,我的问题出现了,据我所知,如果不使用NSMutableSet,我就无法做到。然后我获得addObject
和removeObject
。
除了我初始化NSMutableSet以获得“列表”NSSet当前具有的所有内容之外,我可以使一切工作正常。我尝试过的所有东西都告诉我它总是会失败而且不会构建,或者最终会意外地返回nil并且出错。
那么有没有办法正确地更改NSSet的内容或者至少将NSSet转换为NSMutableSet然后当我完成后,将NSMutableSet转换回NSSet?
如果有必要,我可以添加一些代码,但我认为我解释得非常好。 让我知道,我将添加您需要的任何细节。
提前谢谢。
答案 0 :(得分:2)
只需创建一个可变副本:
var set = NSSet(objects: "One", "Two", "Three")
let mutableSet = set.mutableCopy() as! NSMutableSet
mutableSet.addObject("Four")
set = mutableSet
答案 1 :(得分:0)
mutableCopy()
在NSSet
上致电mutableCopy()
:
let x = NSSet()
let y = x.mutableCopy() //returns NSMutableSet