我有一个包含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。
想法?