iPhone: сбой при сортировке по номеру - PullRequest
1 голос
/ 09 марта 2012

У меня есть выход NSArray. пожалуйста, обратитесь ниже. Я хочу отсортировать на основе конкретного номера поля (порядок) в нем. Пожалуйста, используйте код ниже.

Log: resultArray:
(
        {
        Name = "Myname1";
        Id = "dummyID";
        Order = 0; 
        parexId = 15;
        "__type" = "Question:#myAPI";
    },
        {
        Name = "Myname2";
        Id = "fatID";
        Order = 1; 
        parexId = 16;
        "__type" = "Question:#myAPI";
    }
        {
        Name = "Myname3";
        Id = "colorID";
        Order = 2; 
        parexId = 17;
        "__type" = "Question:#myAPI";
    }

)

Код:

NSSortDescriptor *descriptor = [NSSortDescriptor sortDescriptorWithKey:@"Order" ascending:YES comparator:^(id obj1, id obj2) { 
            return [obj1 compare:obj2 options:NSNumericSearch]; 
    }];
    resultArray = [resultArray sortedArrayUsingDescriptors:[NSArray arrayWithObject:descriptor]]; // resultArray contents the above output values.

НО происходит сбой при сравнении при сортировке. Ошибка при сбое:

-[__NSCFNumber compare:options:]: unrecognized selector sent to instance 0x6b514b0

Может кто-нибудь помочь мне, что я здесь не так делаю?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 09 марта 2012

Заказ - это числовое поле. У него нет метода сравнения: параметры. Вы должны использовать

[obj1 сравнить: obj2];

0 голосов
/ 09 марта 2012

Используйте, как показано ниже, будет работать нормально

NSSortDescriptor *aSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Order" ascending:YES];
    [resultArray sortUsingDescriptors:[NSArray arrayWithObject:aSortDescriptor]];
    [aSortDescriptor release];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...