我想知道键在 NSDictionary 中是如何工作的。通常,我会使用 NSString 作为键,例如:
NSString *stringKey = @"stringKey";
[mydict objectForKey:stringKey];
如果我想使用 NSNumber 怎么办:
NSNumber *numberKey = [NSNumber numberWithInt:3];
[mydict objectForKey:numberKey];
字典会去寻找数字为 3 的键吗?还是只是比较 numberKey 的地址?
最佳答案
两个键相等当且仅当[key1 isEqual:key2]
。一些类可能会使用 -[NSObject isEqual:]
实现 return self == other;
,但这对于类(例如 NSString
、NSNumber
等)来覆盖它以进行更多特定于上下文的比较。
关于objective-c - NSNumber 作为 NSDictionary 的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7337811/