我发现在Objective-C中访问可变字典键和值时有些困难.

假设我有这个:

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

我可以设置关键点和值.现在,我只想访问每个键和值,但我不知道设置了多少个键.

在PHP中非常简单,如下所示:

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

在Objective-C中,这怎么可能?

推荐答案

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

这适用于符合NSFastEnumeration协议(可在10.5+和iOS上使用)的每个类,不过NSDictionary是少数允许您枚举键而不是值的集合之一.我建议你在Collections Programming Topic中读fast enumeration左右.

哦,我应该补充一点,你应该在枚举集合时修改它.

Objective-c相关问答推荐

NSString "nil or empty" 判断 - 这完成了吗?

Objective C 中的多个委托

如何用零填充左侧的整数?

Xcode 的任何 ReSharper 类似功能?

tableView:canEditRowAtIndexPath: 弹出 viewController 时崩溃

在 Interface Builder 中设计 UITableView 的section header

增加推送通知徽章 iPhone

UIDatePicker,根据今天的日期设置最大和最小日期

以编程方式创建 UITableView

如何将 .plist 文件中的数据 struct 读入 NSArray

在 NSString 对象中查找子字符串

如何以编程方式移动 UIScrollView 以集中在键盘上方的控件中?

如何在嵌入 UIViewController 的 UITableView 中直观地创建和使用静态单元格

代码问题:格式字符串不是字符串文字

以编程方式查找 iphone 的语言环境货币

Core Text在iOS中计算字母框架

如何判断 NSString 的最后一个字符

如何在没有死锁的情况下同步调度主队列?

Foo 类在 MyApp 和 MyAppTestCase 中都实现了.将使用两者之一.哪个是未定义的

CALayer:仅在一侧添加边框