Mic*_*ord 3 collections cocoa-touch objective-c ios
我正在努力想象是否将现有对象添加到Cocoa中的一个集合实际上替换了该对象,或者只是忽略了addObject:是否存在重复.我正在使用一个自定义对象,如果特定字段相同,则该对象被视为与另一个对象相同.
我重写都isEqual:和hash方法,并containsObject:不会返回true,当我打电话,但我想更新一组新的对象,由于某种原因,如果我把它不起作用addObject:.
如果它确实忽略了它,那么用什么代替最佳数据结构NSMutableSet才能产生预期效果?
ken*_*ytm 14
从描述中,它忽略了是否存在重复.
如果给定对象尚未成为成员,则将该对象添加到该集合中.
您可以将NSMutableSet转换为CFMutableSet,它具有允许更好地控制如何添加对象的方法(您希望CFSetSetValue):
CFSetSetValue:该值在设置 theSet.如果此值已存在于 Set中,则将替换它.
CFSetAddValue:如果集合中已存在值,则此函数将返回而不执行任何操作.
CFSetReplaceValue:如果此值已经不存在中 theSet,函数什么都不做.