gpt4 book ai didi

ios - Swift - 设置字典中的行数

转载 作者:可可西里 更新时间:2023-11-01 00:59:09 26 4
gpt4 key购买 nike

我有一个字典定义为:

var episodesDictionary = [String: [Episode]]()

字典中的每一项都可以有一定的情节数,例如:

title1: episode1, episode2, episode3
title2: episode1, episode2
title3: episode1, episode2, episode3, episode4

我想要的是摆一张 table 。所以在 numberofSectionsInTableView 中我返回

episodesDictionary.count

问题是我不知道如何获取每个部分的行数。我尝试了以下方法:

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

var episodes = [Int]()

for (key, value) in episodesDictionary {
var shows = [String]()
shows.append(key)
episodes.append(value.count)
}

return episodes[section]

}

但我总是得到0

episodeDictionary 是从从服务器获得的 JSON 文件中解析的。

关于如何为每个部分设置行有什么想法吗?

谢谢。

最佳答案

字典不保留其键值对的顺序。因此,您不能创建一个数组,其元素对应于相应标题的剧集数,因为它们不能保证字典将按您期望的排序顺序枚举。

相反,您需要制作一个从标题到剧集数的字典:

let episodes = [
"title1" : ["episode1", "episode2", "episode3"],
"title2" : ["episode1", "episode2"],
"title3" : ["episode1", "episode2", "episode3", "episode4"],
]

let episodeCounts = episodes.mapValues { $0.count }

print(episodeCounts) //prints ["title1": 3, "title2": 2, "title3": 4]

在 Swift 4 之前

没有mapValues,所以你必须自己写:

let dict = [
"title1" : ["episode1", "episode2", "episode3"],
"title2" : ["episode1", "episode2"],
"title3" : ["episode1", "episode2", "episode3", "episode4"],
]

var episodeCounts = [String : Int]()

for (title, episodes) in dict {
episodeCounts[title] = episodes.count
}

print(episodeCounts) //prints ["title1": 3, "title2": 2, "title3": 4]

关于ios - Swift - 设置字典中的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38210168/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com