objective-c - NSMutableDictionary keyEnumerator 还是 NSArray?

标签 objective-c cocoa nsarray nsmutabledictionary

我有一个 NSMutableDictionary ,其结构如下:

主词典 > 未知词典 > 词典 1,2,4,5,6...

我的问题是检索未知字典键并将其设置为变量的最佳方法是什么?这是我尝试过的:

NSEnumerator *enumerator = [myMutableDict keyEnumerator];
id aKey = nil;
while ( (aKey = [enumerator nextObject]) != nil) {
    id value = [myMutableDict objectForKey:aKey]; // changed to `aKey`
    NSLog(@"%@: %@", aKey, value);                // tip via rmaddy
} 

如果您不知道键中对象的名称,objectForKey: 会发生什么?

我的另一个想法是填充一个 NSArray,然后以某种方式拉出每个键。

for (NSString *object in myMutableDict)
        myArray = [myArray arrayByAddingObject:MainDict];
}

如果有人可以建议一种更好的方法从 NSMutableDictionary 获取对象(未知),我有兴趣学习。

最佳答案

你可以像这样枚举字典:

NSDictionary * someDictionary = ... however you set your dictionary;
[someDictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
    NSLog(@"Key: %@", key);
    NSLog(@"Object: %@", obj);


}];

并设置:

*stop = YES; 

当您找到您要寻找的对象时。

关于objective-c - NSMutableDictionary keyEnumerator 还是 NSArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23643652/

相关文章:

ios - 使用 ARC 为 @property 覆盖 @property setters with 'copy'

ios - 如何在iOS中制作水平滚动菜单

iphone - UITableViewCell 未更新

iphone - NSURLConnection 未启动

iphone - 集合在枚举时发生了变异

iphone - Obj-C,dyld:找不到符号:_OBJC_CLASS _ $ _ NSUbiquitousKeyValueStore

ios - 如何使用预处理器有条件地声明新类的父类(super class)?

cocoa - 从代码发送 MouseEvent 到 NSView (WebView)

objective-c - NSArray的实例变量

objective-c - 如何检查传入的 JSON feed 是否包含单个或多个记录?