Нераспознанный селектор для caseInsensitiveCompare: с более чем одним объектом в массиве - PullRequest
0 голосов
/ 20 августа 2011

У меня есть следующий код ...

[sortedTripDatesList removeAllObjects];     
[sortedTripDatesList addObjectsFromArray:[tempArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]];

tempArray - это NSMutableArray из NSDates (даты события). Если в массиве более одного элемента, xCode выдает нераспознанное исключение селектора ...

'- [__ NSDate caseInsensitiveCompare:]: нераспознанный селектор, отправленный экземпляру 0x4f66dd0'

Я считаю, что это потому, что объекты в массиве являются NSDates. После прочтения документации и нескольких поисков в Google я полностью запутался в том, как сортировать массив дат.

На самом деле у меня уже давно запущен этот код, и до сегодняшнего дня я не замечал проблем. Возможно, у меня никогда не было более 1 даты в массиве до сегодняшнего дня, но мне трудно в это поверить, поскольку я тестировал это приложение уже много месяцев и, безусловно, в какой-то момент во время тестирования принял бы участие более одного события. *

Как правильно это сделать? Любая помощь будет оценена.

John

1 Ответ

2 голосов
/ 20 августа 2011

Если у вас есть NSDates в вашем массиве, вы не должны использовать caseInsensitiveCompare селектор, потому что NSDate не отвечает на него. Вместо этого следует использовать селектор compare:

[sortedTripDatesList removeAllObjects];     
[sortedTripDatesList addObjectsFromArray:[tempArray sortedArrayUsingSelector:@selector(compare:)]];
...