ios - 使用自定义对象对NSMutableArray进行排序

标签 ios objective-c sorting nsmutablearray

我有一个带有NSMutableArray的iOS应用,它包含许多行数据(分为3个部分),如下所示:

[PFUser object, stringData, floatValue]
       .             .          4.3
       .             .          5.9
       .             .          1.1
       .             .          9.32
       .             .          0.024

上图显示了如何拆分数组以及数组中存储的数据类型。但是这些数据类型不是键或任何东西。所以我不能做类似valueForKey的事情。

数组的示例:
@[@[userObject, @"hello", @234.1441],
  @[userObject, @"sdfsg", @94.33],
  @[userObject, @"wrfdo", @24.897]
];

因此,从上面的示例中,您可以看到数组中包含数组。

我想通过读取包含浮点值的3段对数组进行排序。

我怎样才能做到这一点?我在网上看了很多,并且阅读了很多有关使用NSSortDescriptor的信息,但是我遇到的问题是,所有示例似乎总是使用简单的字符串或仅包含数字的数组。

有没有办法在带有我的自定义对象的数组中使用NSSortDescriptor

最佳答案

您可以使用sortUsingComparator:

[array sortUsingComparator:^(id obj1, id obj2) {
    NSArray *arr1 = obj1;
    NSArray *arr2 = obj2;
    return [arr1[2] compare:arr2[2]];
}];

甚至(由于rmaddy的建议):
[array sortUsingComparator:^(NSArray *arr1, NSArray *arr2) {
    return [arr1[2] compare:arr2[2]];
}];

如果数组不可变,则可以使用sortedArrayUsingComparator:

关于ios - 使用自定义对象对NSMutableArray进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34665357/

相关文章:

ios - 使用 iOS 7.1 的 UIImageView 子类中的 setter/getter 的不同行为

objective-c - 什么最能描述 objective-C 和 Cocoa Bindings?

python - 我正在尝试根据修改日期对文件夹中所有文件的列表进行排序

ios - 隐藏和展开 UITableView 部分

iphone - 创建可重用的 iOS 控件

ios - 设备上令人沮丧的 EXC_BAD_ACCESS(NSData/OpenGL 相关?) - 在模拟器上工作正常

objective-c - 如何更改 UIDatePicker 的颜色?

c - 在 C 中对链表进行排序时的无限循环

python - 按值属性对字典进行排序

ios - UIKit UITableViewCell 实现