gpt4 book ai didi

objective-c - NSMutableSet 的 addObject 方法是否替换重复或忽略插入?

转载 作者:可可西里 更新时间:2023-11-01 06:19:01 25 4
gpt4 key购买 nike

我正在努力弄清楚将一个已经存在的对象添加到 Cocoa 中的集合是否实际上替换了该对象,或者如果存在重复对象则简单地忽略 addObject:。如果特定字段相等,我正在使用一个自定义对象,该对象被视为与另一个对象相同。

我重写了 isEqual:hash 方法并且 containsObject: 在我调用它时确实返回了 true ,但我想用新对象更新集合,但出于某种原因,如果我调用 addObject: 则它不起作用。

如果它确实忽略它,为了达到预期的效果,最好使用什么数据结构来代替 NSMutableSet

最佳答案

From the description ,它忽略是否有重复项。

Adds a given object to the set, if it is not already a member.

您可以将 NSMutableSet 转换为 CFMutableSet,它具有允许更好地控制如何添加对象的方法(您需要 CFSetSetValue):

  • CFSetSetValue : 要在theSet 中设置的值。如果此值已存在于 theSet 中,则将其替换。

  • CFSetAddValue : 如果 value 已存在于集合中,则此函数不执行任何操作返回。

  • CFSetReplaceValue : 如果此值不存在于 theSet 中,则该函数不执行任何操作。

关于objective-c - NSMutableSet 的 addObject 方法是否替换重复或忽略插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12646562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com