我想在这样的NSDictionary中引用一个而不是它包含的内容:
key {
14819 = {
contactDetails = {
dictionary = {
interests = {
Movies =
...
我想做这样的事情:
if([key isEqualToString:@"14819"]){
do something
}
你能帮助我吗?
答案 0 :(得分:1)
你可以使用nsdictionary中的allkeys方法来获取键数组,而不是迭代它来进行比较!像这样:
NSArray*keys=[dict allKeys];
for(NSString *key in keys) {
if ([key compare@"14819"] == NSOrderedSame) {
do something
}
}
答案 1 :(得分:1)
应该可以使用allKeys查找它。写了一个简单的例子,希望这有帮助。
NSMutableDictionary *testDictionary = [[NSMutableDictionary alloc]init];
[testDictionary setObject:@"value" forKey:@"testObject"];
BOOL containsKey = [[testDictionary allKeys] containsObject:@"testObject"];
NSLog(@"testing %d" ,containsKey);
答案 2 :(得分:1)
如果您只想测试字典中是否存在密钥,请使用objectForKey:
并测试该对象是否不是nil
。
获取allKeys
并搜索密钥会有效,但几乎肯定会变慢。字典是哈希表; objectForKey:
使用了这一事实,而allKeys
则没有。