Objective-C - NSSet containsObject

时间:2014-10-30 04:58:16

标签: ios objective-c nsset

我有一个包含NSDictionary对象的NSMutableSet。我将对象添加到集合中,然后我测试成员资格。这让我疯狂,因为它不像我认为的那样表现。

NSMutableSet *aSet = [[NSMutableSet alloc] init];
..
..
// add NSDictionary objects to aSet

// Now test for membership

if ([aSet containsObject:aDictionary]) {
  NSLog(@"set contains  object");
}
else {
  NSLog(@"set does NOT contain object");
}

NSMutableSet *newSet = [NSMutableSet setWithSet:aSet];
if ([newSet containsObject:aDictionary]) {
  NSLog(@"newSet contains object");
}
else {
  NSLog(@"newSet does NOT contain object");
}

您希望它能够两次打印相同的消息。但事实并非如此。它失败了:包含aSet的测试,但传递给newSet。

我只是不明白为什么会这样。我已经确认我添加到集合中的对象(NSDictionary)与我正在使用的对象完全相同:contains。

想法?

0 个答案:

没有答案