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 に答える