Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何排序JSON数组并在UITableView中显示它_Ios_Arrays_Json_Swift - Fatal编程技术网

Ios 如何排序JSON数组并在UITableView中显示它

Ios 如何排序JSON数组并在UITableView中显示它,ios,arrays,json,swift,Ios,Arrays,Json,Swift,我有一个JSON数组 { "id": 36, "name": "The Shawshank Redemption", "year": 1994, "rating": 9.196 }, { "id": 45, "name": "The Green Mile", "year": 1999, "rating": 9.064 }, { "id": 48, "name": "Forrest Gump", "year": 1994, "rating": 8.

我有一个JSON数组

 {
  "id": 36,
  "name": "The Shawshank Redemption",
  "year": 1994,
  "rating": 9.196
},
{
  "id": 45,
  "name": "The Green Mile",
  "year": 1999,
  "rating": 9.064
},
{
  "id": 48,
  "name": "Forrest Gump",
  "year": 1994,
  "rating": 8.921
},
{
  "id": 39,
  "name": "Schindler's List",
  "year": 1993,
  "rating": 8.817
},
{
  "id": 53,
  "name": "Intouchables",
  "year": 2011,
  "rating": 8.812
},
因此,如何在UITableView中制作具有相同年份的电影将在一个部分中放映(例如,《肖申克的救赎》和《阿甘正传》将在“1994”部分中放映,《绿英里》将在“1999”部分中放映等等)

此外,有电影的部分必须按年份排序(“2011”部分首先,然后是“1999”部分等),每个部分中的电影必须按评级排序(例如,“1994”部分中的“肖申克的救赎”必须排在第0行,“阿甘正传”必须排在第1行)


我的解决方案是制作2d阵列,并将相同年份的胶片放入其中,但我确信一定有更好的解决方案。

首先:创建自定义元素

Second:读取Json并创建一个数组作为自定义数组并附加到此数组

第三个:为节创建元组


第四个:对UITableView进行编码

第一个:创建自定义元素

Second:读取Json并创建一个数组作为自定义数组并附加到此数组

第三个:为节创建元组


Forth:编码到UITableView

您可以使用字典按年份对数组进行分组(分组:按:并使用排序键将字典映射到一个自定义结构,该结构包含节的名称/年份,以及一个按分级排序的
Film
数组。如果你的电影数量超过了年,这是一个非常有效的方法,并且是一个很好的方法来限制你需要的数量或年数。对于你的应用程序,如果您的电影数量超过几年,这似乎非常合适。但是,由于您通常希望将电影放入数组以外的其他数据结构中,因此根据详细信息,可能会有更合适的解决方案。您可以使用
字典按年对数组进行分组(分组:按:
并使用排序键将字典映射到一个自定义结构,该结构包含节的名称/年份,以及一个按分级排序的
Film
数组。如果你的电影数量超过了年,这是一个非常有效的方法,并且是一个很好的方法来限制你需要的数量或年数。对于你的应用程序,如果你的电影数量超过了几年,这似乎就足够了。但是,由于你通常希望将电影放入数组以外的其他数据结构中,因此可能会有更合适的解决方案,具体取决于细节。不要再做第三步。苹果说:元组对于相关值的临时组很有用。它们不适合创建复杂的数据结构。如果您的数据结构可能会超出临时范围,请将其建模为类或结构,而不是元组。我通常使用结构,但当我想按日期对自定义数组排序时,我使用元组。苹果说:元组对相关值的临时组很有用。它们是We’我们不适合创建复杂的数据结构。如果您的数据结构可能会超出临时作用域,请将其建模为类或结构,而不是元组。我通常使用结构,但如果要按日期对自定义数组排序,则使用元组