NSMutableSet与NSMutableArray

时间:2009-07-29 21:13:19

标签: iphone nsmutablearray

有什么区别?

在我的上下文中,我需要能够动态添加和删除对象。用户单击要检查和关闭的表的行,从而在列表中添加或删除引用的对象。

一个疯狂的猜测是,如果set没有索引,那么数组有索引项吗?

4 个答案:

答案 0 :(得分:29)

NSSet / NSMutableSet不会按任何特定顺序保留项目。 NSArray / NSMutableArray会按特定顺序存储项目。如果您正在构建表视图,那么绝对应该使用数组作为您选择的数据源。

答案 1 :(得分:23)

此外,NSMutableSet确保所有对象都是唯一的。

NSMutableArray适用于UITableView,因为元素具有索引,因此您可以返回[array count]以获取表行数,或者[array objectAtIndex:rowNumber]以轻松地将元素与行相关联。

答案 2 :(得分:3)

另外,根据the documentation,使用NSSets测试对象成员资格的速度更快。

  

当顺序为时,您可以使用集合作为数组的替代   元素在测试对象时是否重要和性能   包含在集合中是一个考虑因素,而数组是有序的,   对成员资格的测试比使用集合测试要慢。

答案 3 :(得分:0)

有3个主要区别。 1)集合是无序的2)没有索引& 3)在数组排序,索引和放大的情况下,不能有重复值。可以存储重复的值。