首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >作为NSDictionary关键字的NSNumber

作为NSDictionary关键字的NSNumber
EN

Stack Overflow用户
提问于 2011-09-08 01:10:50
回答 2查看 14K关注 0票数 16

我想知道键在NSDictionary中是如何工作的。通常,我会使用NSString作为密钥,例如:

NSString *stringKey = @"stringKey";
[mydict objectForKey:stringKey];

如果我想使用NSNumber怎么办:

NSNumber *numberKey = [NSNumber numberWithInt:3];
[mydict objectForKey:numberKey];

字典会去查找数字为3的键吗?或者它只会比较numberKey的地址?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-08 01:13:28

当且仅当[key1 isEqual:key2]时,两个密钥相等。一些类可能会使用return self == other;-[NSObject isEqual:]实现,但对于类(如NSStringNSNumber等)来说,覆盖它以进行更多特定于上下文的比较是很常见的。

票数 16
EN

Stack Overflow用户

发布于 2012-03-26 14:30:31

我认为它将着眼于NSNumber的价值。我使用NSNumber作为字典的键。

1.将密钥存储在view.tag中

view.tag = self getUniqueNSIntegerKey;-->获取唯一密钥并保存到view.tag

[字典setOjbect: object forKey: NSNumber numberWithInt:view.tag];//添加object

2.稍后使用view.tag检索对象

object =[字典objectForKey:NSNumber numberWithInt:view.tag];//通过view.tag获取object

它就是这样工作的……

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7337811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档