【发布时间】:2014-08-13 00:41:17
【问题描述】:
所以伙计们,我正面临一个我无法弄清楚的问题。我正在使用 UITableView 显示从已转换为字典的 JSON 对象收集的数据。
{
"start_from": "2014-08-10",
"list_tags": {
"2014-08-12": {
"0": [
{
"id": "5",
"tag": "555"
}
],
"1": [
{
"id": "5",
"tag": "556"
}
],
"-1": [
{
"id": "5",
"tag": "557"
}
]
},
"2014-08-10": {
"0": [
{
"id": "5",
"tag": "558"
},
{
"id": "5",
"tag": "565"
},
{
"id": "5",
"tag": "566"
}
],
"1": [
{
"id": "5",
"tag": "559"
}
],
"-1": [
{
"id": "5",
"tag": "560"
}
]
},
"2014-08-14": {
"0": [
{
"id": "5",
"tag": "561"
}
],
"1": [
{
"id": "5",
"tag": "562"
},
{
"id": "5",
"tag": "564"
}
],
"-1": [
{
"id": "5",
"tag": "563"
}
]
}
}
}
如果您查看 json 结构,它会遵循类似的内容
字典 -> list_tags -> { 特定日期(多个日期之一) -> { 特定数组(三个标识符值之一 -1,0,1) -> { 特定对象(可以是多个)}}
我正在使用表格视图,将格式化日期作为标题。这里的挑战是在相同的相应标题下显示数组 (-1,0,1) 内的所有对象。由于每个数组内部可以有多个对象,因此很难找出一个日期下存在多少对象,从而找出一个标题。
使用枚举,我获得了某个日期的对象数量。
所以我的 titleForHeader 使用
self.listTagsKeys[section];
返回特定日期所有数组下的对象数。
我的部分数量是
[self.listTags count];
我有我的行数使用与 [Date : Number Of Rows] 映射的字典
[self.tagsForDates valueForKey:[self.listTagsKeys objectAtIndex:section]];
我在这里面临的挑战是如何在同一标题下显示表格视图单元格的数据,因为我无法直接访问数据。
如果我做错了,请告诉我,以免我走错方向。 如果有人能告诉我如何在这种情况下使用迭代器,我将非常感激,而不是简单地指出这可以使用迭代器来解决,或者帮助我找到一种方法来做到这一点,或者更好地组织数据来自 JSON 结构。
如果这太令人困惑,请告诉我,以便我能够更好地解释它。
干杯!
该部分将是日期,行将是该部分下每个日期的 (-1,0,1) 中的所有对象。由于这些对象中的每一个都有一个唯一标识符作为父对象,即 -1,0,1,因此我不确定如何判断哪些行具有某个标识符。
所以 2014-08-10 将有 5 行,但使用三个图像之一(一个代表 -1,一个代表 0,一个代表 1)作为其图像视图。为了能够在特定行的图像视图中显示此图像,我需要知道它是什么类型。
【问题讨论】:
-
使用嵌套数组看起来并不太难,但我不是 100% 在每个日期标题下你想要什么 - 也许如果你可以用表格的想法来更新你的问题看起来像 - 即在 2014-08-10 下会有 3 行 (0,1,-1) 或 5 行(0,1,-1 下的所有项目)?
-
该部分将是日期,行将是该部分下每个日期的 (-1,0,1) 中的所有对象。由于这些对象中的每一个都有一个唯一标识符作为父对象,即-1,0,1,因此我不确定如何判断哪些行具有某个标识符。所以 2014-08-10 将有 5 行,但使用三个图像之一(一个用于 -1,一个用于 0,一个用于 1)作为其图像视图。我刚刚掌握了 stackoverflow,所以我不完全确定在哪里添加更新或编辑。
-
您应该可以点击问题下方的“编辑”
-
完成!感谢您的提示!
-
只需构建一个数组以按照您想要的方式映射行。
标签: ios objective-c json uitableview