用Objective-C的for each循环访问NSMutable字典

6 浏览
0 Comments

用Objective-C的for each循环访问NSMutable字典

我在Objective-C中访问可变字典的键和值时遇到了一些困难。

假设我有这个:

NSMutableDictionary *xyz=[[NSMutableDictionary alloc] init];

我可以设置键和值。现在,我只想访问每个键和值,但我不知道设置的键的数量。

在PHP中,这很容易,如下所示:

foreach ($xyz as $key => $value)

在Objective-C中如何实现这个功能?

admin 更改状态以发布 2023年5月23日
0
0 Comments

为了不漏掉使用块枚举键和值的10.6+选项...

[dict enumerateKeysAndObjectsUsingBlock:^(id key, id object, BOOL *stop) {
    NSLog(@"%@ = %@", key, object);
}];

如果你想要同时发生这些动作:

[dict enumerateKeysAndObjectsWithOptions:NSEnumerationConcurrent
                              usingBlock:^(id key, id object, BOOL *stop) {
    NSLog(@"%@ = %@", key, object);
}];

0
0 Comments

for (NSString* key in xyz) {
    id value = xyz[key];
    // do stuff
}

这适用于符合NSFastEnumeration协议(在10.5+和iOS上可用)的所有类,尽管NSDictionary是为你枚举键而不是值的少数集合之一。我建议你阅读快速枚举集合编程主题

哦,顺便说一句,你在枚举集合时永远不应该对其进行修改。

0