将字符串添加到NsMutableSets

时间:2015-05-29 17:06:24

标签: objective-c nsmutableset

如果我有两个字符串对象都具有值" hi",并且我将它们添加到NSMutableSet中,它们是否被视为不同的对象?非常感谢!

1 个答案:

答案 0 :(得分:1)

除了@rmaddy的正确评论之外,它还存在一个根本问题:几乎不可能保证集合中的对象相等。 (很容易保证它们不相同。)这意味着当一个物体发生变化(大多数不可能检测到)时,重新检查所有物体的等值(昂贵)。这是因为NSSet不会复制其内容对象。

我们举个例子:

NSMutableString *first = [@"Amin" mutableCopy];
NSMutableString *second = [@"Amin Negm" mutableCopy];
NSSet *set = [NSSet setWithObjects:first, second];

[first appendString:@" Negm"];

两个对象都等于,但没有删除。 (哪一个?)