{ "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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)