我正在与一个API进行通信,该API将我的应用程序所需的数据作为响应发送回NSDictionary(数据基本上是一个提要).此数据按最新到最旧排序,最新项目位于NSDictionary的前面.
当我快速枚举它们时for (NSString *key in articles) { ... },顺序似乎是随机的,因此我操作它们的顺序不是从最新到最旧,就像我想要的那样,而是完全随机的.
我已经读过了,当使用NSDictionary的快速枚举时,不保证按顺序迭代通过数组.
但是,我需要它.如何按NSDictionary所在的顺序迭代NSDictionary?
我试图在以下名为'robotDesign'的NSDictionary中获取"@type"键的值
robotDesign : {
"@id" = "2";
"@type" = "piggyDash";
turnAngle = "-90";
width = "90.0";
}
Run Code Online (Sandbox Code Playgroud)
这是我使用的JSON对象的一部分
[NSJSONSerialization JSONObjectWithData: options: error:];
Run Code Online (Sandbox Code Playgroud)
我使用以下代码来提取@type值
NSString * robot_type = (NSString*)[robotDesign valueForKey:@"@type"];
Run Code Online (Sandbox Code Playgroud)
但是请注意以下错误:
由于未捕获的异常'NSUnknownKeyException'而终止应用程序,原因:'[<__ NSCFDictionary 0x71de9e0> valueForUndefinedKey:]:此类不是密钥类型的密钥值编码兼容.
注意:请注意,字典中的其他对象如'turnAngle'和'width'可以使用上面给出的相同代码轻松提取,但使用各自的键.