【发布时间】:2011-05-25 07:26:27
【问题描述】:
我们能否通过传递特定值或对象来获取NSDictionary 中对象的键?
【问题讨论】:
标签: objective-c cocoa-touch ios nsdictionary
我们能否通过传递特定值或对象来获取NSDictionary 中对象的键?
【问题讨论】:
标签: objective-c cocoa-touch ios nsdictionary
-[NSDictionary allKeysForObject:] 返回其对象与传递的对象匹配的所有键的NSArray,其中“匹配”由isEqual: 确定。
【讨论】:
NSArray 的注释,尽管从方法名称中应该可以清楚地看到。
要以更具体的方式回答您的问题,请使用以下命令获取特定对象的密钥:
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
【讨论】:
lastObject 而不是objectAtIndex:0 以避免在没有此类键的情况下引发异常。
firstObject
这是获取对象第一个键的方法(如果它是NSString):
NSArray *keys = [yourDic allKeysForObject:yourObject];
NSString *yourKey;
if ([keys count] > 0) {
yourKey = keys[0];
}
如果在字典中找不到该对象,则进行处理。
【讨论】: