gpt4 book ai didi

ios - 为什么 UITableView 中的部分在不同设备上的顺序不同?

转载 作者:行者123 更新时间:2023-11-28 10:02:07 24 4
gpt4 key购买 nike

我在我的应用程序中实现了一个 UITableViewController。除了此 TableView 中各部分的顺序外,一切正常。

节数和每个节内的行数都可以。我从我的服务器获取一些值并将它们显示在我的 TableView 中。它们按日期排序,每个部分都包含与该日期相关的值。

现在,如果我有昨天 (11.11.2014) 和今天 (12.11.2014) 的值,在我的 iPhone 6 上首先显示 12.11.2014 部分。在 iPhone 5 上,首先显示 11.11.2014 部分 - 但它是相同的代码!我不知道如何解决这个问题。

这里有 2 个屏幕截图,所以你知道我的意思:

iPhone 5 截图 iPhone 5 screenshot

iPhone 6 截图 iPhone 6 screenshot

在第二个屏幕截图中,12.11.2014-首先显示。

编辑:
我的 TableView 显示比特币的最新交易。我有一个 NSMutableDictionary,它有 2 个条目(在我这里的示例中),一个条目用于“12.11.2014”,一个条目用于“11.11.2014”,所以我的numberOfSections-方法返回 2。

var trades : NSMutableDictionary!

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return trades.count
}

现在,该字典中的每个条目都包含一个交易列表,因此我的字典的类型很简单:

String : [Trade]

所以我的 numberOfRowsInSection 看起来像这样(我知道这有点棘手):

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return (self.trades.objectForKey((self.trades.allKeys as NSArray).objectAtIndex(section) as String)! as [Trade]).count
}

正如我所说,它在 iPhone 6 上运行良好,但在 iPhone 5 上却不行。

最佳答案

您正在将“部分”数据存储在 NSDictionary 中。

NSDictionary 是一个无序集合。在 NSDictionary 中没有“顺序”这样的东西。说顺序变化没有意义。

如果您想将内容存储在字典中并以相同的顺序取出它们,那么您需要在取出内容之前对键数组 self.trade.allKeys 进行排序。

不是不同的设备在执行此操作。您可能会发现它也会在单个设备上发生变化。

更好(不同)的方法是使用 NSArray 来存储数据。

像这样...

//self.allTrades array...
[
{
title : 11.11.2014,
trades : //array of trades for 11.11.2014
},
{
title : 12.11.2014,
trades : //array of trades for 12.11.2014
}
]

现在您可以访问一个部分的交易信息,方法是...

self.allTrades[indexPath.section]

并访问一个项目...

//            1.                 2.        3.
self.allTrades[indexPath.section]["trades"][indexPath.row]
// 1. get the dictionary from the array for the section
// 2. then get the trades array from that dictionary
// 3. then get the item from that array.

关于ios - 为什么 UITableView 中的部分在不同设备上的顺序不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26884852/

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