-3

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

4

1 回答 1

2

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

让我们举个例子:

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

[first appendString:@" Negm"];

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

于 2015-05-29T18:06:10.417 回答