根据字符串属性按字母顺序对对象数组进行排序

Posted

技术标签:

【中文标题】根据字符串属性按字母顺序对对象数组进行排序【英文标题】:Sorting Array of Objects alphabetically based on a string attribute 【发布时间】:2012-01-12 03:47:05 【问题描述】:

我有一个 UITableView,它填充了一个“产品”类型的对象数组,每个对象都有一个字符串类型的“名称”属性。单击单元格时,会显示一个模式视图,其中包含有关该产品的更多信息。

我想做的是根据产品名称属性的第一个字母将产品分成几部分。 (如 iPhone 联系人)。

我已经为此苦苦挣扎了一段时间,我似乎无法在网上找到任何可以解决我的特定问题的东西..

有人能指出我正确的方向吗?

【问题讨论】:

【参考方案1】:

这里有几个关于 SO 的好例子。这是一个很好的例子:

How to sort an NSMutableArray with custom objects in it?

【讨论】:

谢谢,这向我展示了如何按字母顺序排列数组,但我仍在努力在 UITableView 中显示按字母顺序排列的现在组织的数组? 如果你实现了 UITableViewDataSource 协议,你可以定义行/节的数量以及在每个点显示的单元格。您将使用这个排序的数组来知道要呈现什么。你可以在这里看到协议:developer.apple.com/library/ios/#documentation/uikit/reference/… 另外,如果你想要字母索引 - 在这里查看答案:***.com/questions/1655119/…【参考方案2】:

像这样使用NSSortDescriptor..

NSSortDescriptor *sortDescriptor =
    [NSSortDescriptor sortDescriptorWithKey:@"name"
                                  ascending:YES
                                   selector:@selector(caseInsensitiveCompare:)];
NSArray *sortedArray = [nameOfArray sortedArrayUsingDescriptors:@[sortDescriptor]];

希望,这就是您要找的。任何问题都可以回复我。 :)

【讨论】:

以上是关于根据字符串属性按字母顺序对对象数组进行排序的主要内容,如果未能解决你的问题,请参考以下文章

js 根据对象属性对数组进行按字母排序

首先按字母顺序对对象数组进行排序,然后按数字排序

按字母顺序对 NSDictionary 值进行排序

按字母顺序对对象的 ArrayList 进行排序

如何在 React.js 中按字母顺序对数组中的对象进行排序

Python:根据属性对对象列表进行排序