objective-c - NSNumber 作为 NSDictionary 的键

标签 objective-c

我想知道键在 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;,但这对于类(例如 NSStringNSNumber 等)来覆盖它以进行更多特定于上下文的比较。

关于objective-c - NSNumber 作为 NSDictionary 的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7337811/

相关文章:

c++ - Objective-C 如何使用 vector 对?

ios - 背景图像重叠刷新控件

iphone - 如何检查 sqlite 文件中存在多少表(Objective-C)

iphone - 在 UILabel 中显示表情符号?

ios - 动态方法解析

ios - 如何让 UITextField 的 textContentType 属性执行任何操作?

iphone - 为什么 myArray 没有被初始化?

objective-c - Objective C 中的惰性数据类型

objective-c - 如何将主题标签附加到使用 fileURLWithPath 获取的本地 html 文件 URL?

iphone - 使用 CSS 设置 UIWebView 样式时的图片路径