值/对象的 NSDictionary 键? [复制]
Posted
技术标签:
【中文标题】值/对象的 NSDictionary 键? [复制]【英文标题】:NSDictionary Key For Value/Object? [duplicate] 【发布时间】:2011-05-25 07:26:27 【问题描述】:我们能否通过传递特定值或对象来获取NSDictionary
中对象的键?
【问题讨论】:
【参考方案1】:-[NSDictionary allKeysForObject:]
返回其对象与传递的对象匹配的所有键的NSArray
,其中“匹配”由isEqual:
确定。
【讨论】:
但请记住:它为匹配 'isEqual' 而不是 '==' 的对象提供所有键 @Kai:是的。我也许还应该添加一条关于它返回NSArray
的注释,尽管从方法名称中应该可以清楚地看到。
如果这不是 FGITW 问答,我不知道是什么。五个赞成票只是因为我的浏览器中有一个搜索快捷方式。【参考方案2】:
要以更具体的方式回答您的问题,请使用以下命令获取特定对象的密钥:
NSString *knownObject = @"the object";
NSArray *temp = [dict allKeysForObject:knownObject];
NSString *key = [temp lastObject];
//"key" is now equal to the key of the object you were looking for
【讨论】:
如果对象不是字符串,将NSString替换为对象类。这是不言自明的。 您可能更喜欢lastObject
而不是objectAtIndex:0
以避免在没有此类键的情况下引发异常。
如果您使用的是最新的 SDK,甚至是 firstObject
【参考方案3】:
这是获取对象第一个键的方法(如果它是NSString
):
NSArray *keys = [yourDic allKeysForObject:yourObject];
NSString *yourKey;
if ([keys count] > 0)
yourKey = keys[0];
如果在字典中找不到该对象,则进行处理。
【讨论】:
以上是关于值/对象的 NSDictionary 键? [复制]的主要内容,如果未能解决你的问题,请参考以下文章