1

我是 iphone 开发新手,需要一些指导才能在 iOS 中对数组进行自定义排序。我想对 UIPickerView 中出现的对象进行排序。传递给 UIPickerView 的对象在一个数组中。

当我打印出数组时,它看起来像这样:

    "<ObjectsInfo: 0x1c5249f0>",
    "<ObjectsInfo: 0x1c524940>",
    "<ObjectsInfo: 0x1c5248e0>",
    "<ObjectsInfo: 0x1c524890>",
    "<ObjectsInfo: 0x1c524840>",
    "<ObjectsInfo: 0x1c524a90>",

当我打印出第一个对象的名称时:

    ObjectsInfo *object = [objectModelName objectAtIndex:1];
    NSLog(@"%@",object.str_name);

它打印出来:阿尔法

给出的值是示例。我想按字母顺序对数组 objectModelName 进行排序。

我怎么做?

我试过这个:

[objectModelName sortUsingSelector:@selector(compare:)];

如何根据 str_name 进行自定义排序,使其按字母顺序排列?需要一些指导......非常感谢任何帮助......

4

2 回答 2

3

[objectModelName sortUsingSelector:@selector(compareItem:)];

在 ObjectsInfo.h 中

  - (NSComparisonResult)compareItem:(ObjectsInfo *)anotherItem;

在 ObjectsInfo.m 中

  - (NSComparisonResult)compareItem:(ObjectsInfo *)anotherItem{

    return [self.str_name compare:anotherItem.str_name options:NSCaseInsensitiveSearch];

  }
于 2012-11-07T08:44:46.693 回答
2

试试这个。

NSArray *sortedArray = [objectModelName sortedArrayUsingComparator:^(ObjectsInfo *firstObject, ObjectsInfo *secondObject) {
            return [firstObject.str_name compare:secondObject.str_name];
        }];
于 2012-11-07T08:24:03.227 回答