Как отсортировать NSArray, где 1 значение dec, а 1 значение float - PullRequest
0 голосов
/ 20 января 2011

В моем текущем проекте много агрегирования, и одно из значений, которое я хотел бы отсортировать, возвращается в 2 вариантах

  1. Мой первый источник вернет 0,9 / 1 / 1,1

  2. Мой второй источник вернет 2.349823432 / 4.93432343

У меня вопрос в 2 раза

  • Какой тип я должен установить на моем объекте чтобы захватить это значение, так сортировка работает правильно. Я спрашиваю потому что В настоящее время я анализирую JSON и установить эти значения вручную.

  • После того, как значение установить лучший способ сортировки предоставленная информация?

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 20 января 2011

Возможно, вы захотите создать класс для описания значений, которые вы анализируете, и определить логику сортировки в этом классе. Простой пример

@interface MyClass : NSObject {
    NSNumber *someNum;
        NSString *someString;
...
}

@implementation MyClass

- (NSComparisonResult)compareNums:(MyClass *)myClassObject {
    return [self.someNum compare:myClassObject.someNum];
}
- (NSComparisonResult)compareStringsDescending:(MyClass *)myClassObject {
    return -1 * [self.someString compare:myClassObject.someString];
}

...

Теперь вы можете отсортировать множество объектов myClass, выполнив это в некотором viewcontroller:

NSArray *mySortedArray = [self.myOriginalArray sortedArrayUsingSelector:@selector(compareNums:)];

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

0 голосов
/ 20 января 2011
sortedArray = [array sortedArrayUsingSelector:@selector(compare:)];

Предполагая, что у вас есть NSNumber в массиве, а не что-то вроде NSValue или около того

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...