Сортировка массива Объективных-c объектов

Таким образом, у меня есть пользовательский класс Foo это имеет много участников:

@interface Foo : NSObject {
    NSString *title;
    BOOL     taken;
    NSDate   *dateCreated;
}

И в другом классе я имею NSMutableArray содержа список этих объектов. Я очень хотел бы отсортировать этот массив на основе dateCreated свойство; я понимаю, что мог записать, мой собственный сортировщик для этого (выполните итерации массива и перестроения на основе даты), но я задавался вопросом, был ли надлежащий Objective C способ достигнуть этого?

Своего рода механизм сортировки, где я могу предоставить членскую переменную виду, был бы большим.

В C++ я раньше перегружал операторы <=>, и это позволило мне виду объектом, но у меня есть забавный чувствительный Objective C, мог бы предложить более хорошую альтернативу?

Большое спасибо

8
задан davbryn 6 May 2010 в 11:12
поделиться

1 ответ

Сделать это довольно просто.

Сначала создайте в своем объекте Foo метод

- (NSComparisonResult) compareWithAnotherFoo:(Foo*) anotherFoo;

, который вернет

[[self dateCreated] compare:[anotherFoo dateCreated]];

В конце вызовите массив

[yourArray sortUsingSelector:@selector(compareWithAnotherFoo:)];

Надеюсь, это поможет, Пол

{{1} }
15
ответ дан 5 December 2019 в 11:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: