【问题标题】:Show data from nested NSMutableArrays and NSDictionarys显示来自嵌套 NSMutableArrays 和 NSDictionarys 的数据
【发布时间】:2014-03-15 15:28:22
【问题描述】:

我在 plist 中有一个充满字典的数组:

字典本身包含一个数组,以Taskitler 为键。我想在表格视图中显示该数组中的项目。我应该写什么才能看到他们?如何定义我的数据路径?

此代码不起作用:

cell.textLabel.text = [[mainList objectAtIndex:indexPath.row] objectForKey:@"Urun"]; 

【问题讨论】:

  • 您能描述一下您遇到的问题吗?
  • 我想在我的 tableview 中显示我的 Taksitler Array 项目。我应该写什么才能看到他们? cell.textLabel.text = [[mainList objectAtIndex:indexPath.row] objectForKey:@"Urun"];此代码不起作用...
  • 一般应该“剥洋葱”一层一层——从数组开始,从数组中取出字典,从字典中取出内部数组,取出内部字典的内部数组。每个都在自己的行上,分配给一个临时变量。 (这不会影响性能。)然后您可以单步执行代码并查看发生了什么。 (而且它更容易理解。)
  • 热舔谢谢!!!!我很容易理解你的“剥洋葱”的逻辑。我无法投票赞成您的评论,因为我的帐户是新帐户,对此感到抱歉。

标签: objective-c cocoa-touch nsarray nsdictionary


【解决方案1】:

您使用objectAtIndex 遍历NSArray 中的项目,并使用objectForKey 遍历或查找NSDictionary 中的对象:

NSArray *root = // ... root object
NSDictionary *dict = [root objectAtIndex:0]
NSArray *task = [dict objectForKey:@"Tasksitler"];
NSDictionary *taskdict = [task objectAtIndex:0];
NSString *urun = [taskdict objectForKey:@"Urun"];

【讨论】:

  • 感谢您的回答 Merlevede !
【解决方案2】:

最简单的方法是这样做。下面的代码利用了 Objective-C 中的下标语法。

NSArray *root = // root object
NSString *urun = root[0][@"Tasksitler"][0][@"Urun"];

解释:

myArray[index] 等价于[myArray objectAtIndex:index]myDictionary[@"key"] 等价于[myDictionary objectForKey:@"key"]

你可以看到哪个更短更容易理解。

【讨论】:

  • 您的回答对我来说就像金子一样 BlackRider。谢谢你。我不能投票给你的答案,因为我的帐户是新的,对此感到抱歉。再次感谢你。尊重!
猜你喜欢
  • 2020-11-27
  • 1970-01-01
  • 2019-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-26
  • 2017-02-21
  • 2019-05-12
相关资源
最近更新 更多