我正在尝试使用特定的数据布局。我们使用plist文件,它按以下方式设置:
根(词典):
- 1.1(阵列)
- 项目0(字典)
---标题
---图标
- 第1项(字典)
---标题
---图标
- 1.2(阵列)
- 项目0(字典)
---标题
---图标
来自plist的这些信息被解析为一个字典,该字典注销如下:
{
"1.0" = (
{
detail = "Detail 0";
icon = "Pull to Refresh";
title = "Item 0";
},
{
detail = "More easily refresh a subscription or playlist.";
icon = "Pull to Refresh";
title = "Pull to Refresh";
}
);
"1.1" = (
{
detail = "Create custom stations of your favorite podcasts.";
icon = Stations;
title = "Custom Stations";
}
);
}
我想要找出的是子阵列中的项目数。例如,有两个子阵列,一个用于1.1,一个用于1.2。我想从这些数组获得dictionaires的数量?
是否有快速访问方式。我试图完成一个for循环并对它们进行计数,但是我收到了NSCFString错误,好像我的数据不正确一样?
答案 0 :(得分:0)
既然你已经提到自己尝试for循环,我不知道这实际上是你正在寻找的那种答案,但是为了这个非常具体的目的(即你确定输入字典总是那种你所描述的结构)沿着这些方向应该做的事情:
- (NSUInteger)numberOfItemsInSubArraysOfDictionary:(NSDictionary *)dict
{
NSUInteger count = 0;
for(NSArray *array in dict.allValues) {
if ([array isKindOfClass:[NSArray class]]) {
count += array.count;
}
}
return count;
}
答案 1 :(得分:0)
您可以尝试这样的事情:
for (NSString *key in [dictionary allKeys]) {
NSLog(@"Number of dictionaries for %@: %d", key, [dictionary[key] count]);
}
此循环的输出为:
Number of dictionaries for 1.0: 2
Number of dictionaries for 1.1: 1