表格视图从 NSDictionary 加载,但不按字母顺序

Posted

技术标签:

【中文标题】表格视图从 NSDictionary 加载,但不按字母顺序【英文标题】:Table view loads from NSDictionary, but not alphabetically 【发布时间】:2010-12-28 08:18:17 【问题描述】:

我对编程很陌生,但现在正在尝试使用表格视图应用程序。我使用了一些sn-ps,但效果很好。我似乎无法弄清楚如何按字母顺序加载我的表格视图,因为这样看起来好多了。导航有四个级别,前两个是表视图。所有数据都存储在带有字典的 plist 文件中。我包括了代码。我觉得我错过了一些非常明显的东西,但我似乎无法找出它是什么!谁能帮我?在此先感谢您的时间!

- (void)viewDidLoad 
// Create the table view data source array from the dictionary property
tableViewData = [[dataForCurrentLevel allKeys] retain];

【问题讨论】:

【参考方案1】:

请仔细阅读@VdesmedT 的回答。只需在将数组传递给 tableview 之前对其进行排序:

- (void)viewDidLoad 
// Create the table view data source array from the dictionary property
tableViewData = [[[dataForCurrentLevel allKeys] sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)] retain];

【讨论】:

【参考方案2】:

使用 sortDescriptor 对数组进行排序

【讨论】:

【参考方案3】:

NSDictionaries 是哈希表,因此键实际上是使用它们的哈希排序的。

例如,您需要使用 sortedArrayUsingSelector: 手动对结果数组进行排序,但 NSArray 类中还有很多其他方法。

【讨论】:

谢谢,这实际上解释了很多!

以上是关于表格视图从 NSDictionary 加载,但不按字母顺序的主要内容,如果未能解决你的问题,请参考以下文章

视图从笔尖加载但不可见?

颤振:如何在不按按钮的情况下进行列表视图更新?

目标 - C:从 URL 加载图像?

我的 NSDictionary 在我的 IBAction 中变为零

使用javascript自动填写“表格”和“提交”而不按“提交”[重复]

从 NSDictionary 中按键获取具有特定值的对象