Проблема сортировки NSTableView (с KVC) - PullRequest
1 голос
/ 13 февраля 2011

У меня была странная проблема с сортировкой NSTableView.

Я создал простое приложение с NSTableView, которое имеет 4 столбца.Затем я использовал KVC, чтобы связать его с контроллером Array.

Затем я добавил некоторые данные в NSMutableArray.

Bulid && Запустите приложение, и я смогу увидеть данные внутри таблицы и щелкнув заголовокданные могут быть отсортированы правильно.

До сих пор все работало нормально.

Затем я попытался добавить caseInsensitiveCompare в каждый столбец.Поэтому я открыл IB, установил ключ сортировки и селектор ("caseInsensitiveCompare:") для каждого столбца.

Затем Bulid && Запустите приложение, но когда я щелкаю заголовок для сортировки, я получаю сообщение об ошибке:

-[NSCFNumber caseInsensitiveCompare:]: unrecognized selector sent to instance 0x1006254f0
-[NSCFNumber caseInsensitiveCompare:]: unrecognized selector sent to instance 0x1006254f0
......

Затем я попытался удалить все содержимое ключа сортировки и селектора каждого столбца.И приложение снова стало нормально.

В чем проблема?Я действительно в замешательстве ...

ps: если я использую сравнение: вместо caseInsensitiveCompare: все снова работает нормально ...

1 Ответ

0 голосов
/ 18 июля 2013

Одно из значений (таких как свойство или ключ) ваших объектов в вашем NSMutableArray имеет класс NSNumber.Поскольку этот класс работает с числами, он не отвечает на селектор caseInsensitiveCompare:.Этот селектор имеет значение NSString.

Столбец в табличном представлении, отображающий числовые значения, должен продолжать использовать compare: для сортировки значений.

...