有什么区别?
在我的上下文中,我需要能够动态添加和删除对象。用户单击要检查和关闭的表的行,从而在列表中添加或删除引用的对象。
一个疯狂的猜测是,如果set没有索引,那么数组有索引项吗?
答案 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)在数组排序,索引和放大的情况下,不能有重复值。可以存储重复的值。