gpt4 book ai didi

uitableview - 动态地将自定义对象数组排序到部分 UITableview

转载 作者:搜寻专家 更新时间:2023-10-31 22:50:19 25 4
gpt4 key购买 nike

我有一个问题已经困扰我几天了。

我有一个名为 countries 的数组。该数组包含一个自定义对象,其中包含国家、城市、IP、状态等数据。

我需要在按属性“国家/地区”划分的表格 View 中显示这些对象。

这意味着如果我有两个自定义对象都属于“澳大利亚”国家/地区,我需要将其添加到名为“澳大利亚”的部分,如果我有 5 个对象属于“西类牙”国家/地区,我需要将这 5 个对象在西类牙部分。

我需要找到一种方法来确保即使添加了一个包含不同国家/地区的对象,它也会位于带有国家/地区名称的部分下。

我已经尝试了多种方法,但都无法解决这个问题。这是动态的原因是因为我不知道每个部分中将有多少个对象。这意味着每个部分中的对象数量可以更改。

我使用此代码按字母顺序对数组进行排序我只需要根据属性“国家/地区”将每个对象放入一个部分我不知道会有多少个部分或每个部分中有多少个对象。

self.countries = self.countries.sorted { $0.country < $1.country }

谁能帮帮我?

编辑:添加了我的 cellForRowAtIndexPath。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if recievedData == true {
var cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! CountryListCell
var serverInfo = countries[indexPath.row] as ServerInfoObject
cell.countryTitle.text = serverInfo.country
cell.flagImage.image = UIImage(named: serverInfo.flag)
cell.serverInfo = serverInfo

return cell
}

return CountryListCell()

}

最佳答案

因此您需要将服务器分类到字典中。 E.G [String:[Server]] 字符串是部分名称(国家/地区)。所以一个例子 dict ["Albania":[serv1,server2,...]]

您可以通过对服务器数组进行排序来简单地做到这一点(我假设您可以解决这个问题)。

您还需要保存部分标题的数组,以便您可以在 cellForRowAtIndexPath 中访问它。例如 ["阿尔巴尼亚","巴西","古巴","德国","俄罗斯"]

所以基本上当在 cellForRowAtIndexPath 中时,您可以通过以下方式访问当前国家/地区

var country = yourSectionArray[indexPath.section]

然后像这样通过字典访问对该国家/地区有效的服务器数组:

var serversOfCurrentSection = yourDictionary[country] as [Server]

然后获取索引的当前服务器

var server = serversOfCurrentSection[indexPath.row]

获取每个部分中的对象数量:

var country = yourSectionArray[indexPath.section]
yourDictionary[country].count

关于uitableview - 动态地将自定义对象数组排序到部分 UITableview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30264705/

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