iphone - NSSet 中的 NSArray - 我必须自己排序吗?

标签 iphone sorting nsarray nsset

我在 NSSet 中有数据,我需要将其放入 NSArray。

我需要自己对其进行排序(同样,这来自 Core Data)还是我可以按排序顺序将其取出?

最佳答案

当您使用NSFetchRequest检索数据时,您可以指定排序。通过设置sortDescriptors属性为 NSSortDescriptor 的数组s。但如果你已经在 NSSet 中拥有它并且不想发出另一个获取请求,您可以使用:

[[theSet allObjects] sortedArrayUsingDescriptors:sortDescriptors];

它将创建一个临时 NSArray当您调用allObjects时然后是另一个排序的数组,所以它不是 100% 有效,但对于合理大小的数据集来说,开销应该可以忽略不计(并且肯定小于排序的成本)。

编辑

实际上,我错了 - NSSet 有 sortedArrayUsingDescriptors:方法也。所以你可以调用[theSet sortedArrayUsingDescriptors:descriptors]并一次性完成这一切。

关于iphone - NSSet 中的 NSArray - 我必须自己排序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2672607/

相关文章:

c - C 中的函数,实现两个 int 数组在另一个数组中的数学并集

objective-c - 不能再使用 array.count

iphone - Game Center 自定义排行榜 - 我真的需要调用 2 次电话才能获取玩家的别名吗?

iphone - 如何在 UICollectionViewCell 上设置 UILabel?

iphone - 它是如何工作的 iOS 6 的 didReceiveMemoryWarning

iphone - Objective-C:使用参数对数组进行排序

php - 如何从php中的另一个键排序和更新唯一键

ios - 降序排列 NSArray

iphone - 创建 NSArray - EXC_BAD_ACCESS?

iphone - CF字符串!在 swift 1.2 中不能转换为 String