objective-c – 来自词典词典价值的iPhone NSArray

objective-c – 来自词典词典价值的iPhone NSArray,第1张

概述我有一个字典词典,它以 JSON格式返回给我 { "neverstart": { "color": 0, "count": 0, "uid": 32387, "id": 73129, "name": "neverstart" }, "dev": { "color": 0 我有一个字典词典,它以 JSON格式返回给我

{    "neverstart": {        "color": 0,"count": 0,"uID": 32387,"ID": 73129,"name": "neverstart"    },"dev": {        "color": 0,"count": 1,"ID": 72778,"name": "dev"    },"iphone": {        "color": 0,"ID": 72777,"name": "iphone"    }}

我还有一个NSArray,其中包含项目所需的ID.例如[72777,73129]

我需要做的是获取ID =>的字典.数组中项目的名称.我知道这可以通过迭代数组,然后循环遍历Dictionary中的所有值并检查值,但似乎应该有一个不那么冗长的方法来做到这一点.

请原谅我的无知,因为我只想找到解决iPhone SDK的方法并学习Objective C和Cocoa.

解决方法 首先,由于您使用的是JsON,我希望您已经找到了 BSJSONAdditions和/或 json-framework,它们都是用于将JsON解析为本机Cocoa结构的开源项目. This blog post给出了如何使用后者从JsON字符串中获取NSDictionary的想法.

然后问题变成在字典中找到匹配值.我不知道有一种方法可以满足您的需求 – Cocoa框架非常强大,但设计非常通用且灵活.但是,在不太多的行中组合起来应该不会太难……(因为你在iPhone上进行编程,我会使用快速枚举来使代码更清晰.)

NSDictionary* JsonDictionary = ...NSDictionary* innerDictionary;NSArray* requiredIDs = ...NSMutableDictionary* matches = [NSMutableDictionary dictionary];for (ID key in JsonDictionary) {    innerDictionary = [JsonDictionary objectForKey:key];    if ([requiredIDs containsObject:[innerDictionary objectForKey:@"ID"]])        [matches setobject:[innerDictionary objectForKey:@"name"]                    forKey:[innerDictionary objectForKey:@"ID"]];}

此代码可能有拼写错误,但概念应该是合理的.另请注意,对[NSMutableDictionary dictionary]的调用将返回一个自动释放的对象.

总结

以上是内存溢出为你收集整理的objective-c – 来自词典词典价值的iPhone NSArray全部内容,希望文章能够帮你解决objective-c – 来自词典词典价值的iPhone NSArray所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1069993.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存