NSMutableArray *sectionTitles;
[sectionTitles addObject:due];
如何只为数组添加唯一值?
答案 0 :(得分:29)
参见Rudolph的答案
我在下面的旧答案现已过时,已经有一段时间了。 Rudoph对NSOrderedSet
/ NSMutableOrderedSet
的引用是正确的,因为这些类是在此Q和我的A之后添加的。
旧答案
正如理查德所说,NSMutableSet
效果很好,但前提是你不需要维护一个有序集合。如果你做需要有序的收藏,你可以做的最好的内容检查是:
if (![myMutableArray containsObject:newObject])
[myMutableArray addObject:newObject];
根据评论进行更新
您可以将此包装在-addUniqueObject:
之类的方法中,并将其放在NSMutableArray category中。
答案 1 :(得分:19)
更多2012-ish的答案(如果有人在将来偶然发现):
使用NSOrderedSet
和NSMutableOrderedSet
。
来自NSOrderedSet
文档的关于效果的说明:
当元素的顺序很重要时,您可以使用有序集作为数组的替代,并且在测试集合中是否包含对象时的性能是一个考虑因素 - 测试数组的成员资格比测试更慢成员资格。
答案 2 :(得分:5)