Я полагаю, блок компаратора только для диагностических целей? На самом деле вам не нужно предоставлять компаратор для NSDate или любого из предоставленных классов типов атрибутов.
Если отладчик сообщает, что объект date1
относится к типу класса NSNumber-cluster, то где-то экземпляр NSCFNumber
назначается атрибуту updated
. Отладчик игнорирует такие факторы, как приведение, и вместо этого просто спрашивает объект, каков его класс. Если объект говорит, что это NSCFNumber
, то это так, независимо от того, как код обрабатывает это иначе.
Почему это происходит, я не могу сказать на основании предоставленного кода.
Вы можете попробовать записать значение и класс атрибута updated
, прежде чем пытаться выполнить сортировку, чтобы проверить, правильно ли он сообщает. Я также рекомендовал бы разложить всю строку. Разумеется, вложенность всех этих вызовов методов будет работать, но она подвержена ошибкам и ее трудно отладить.