Прежде всего, вы используете оператор ==
для сравнения двух указателей на объекты (типа NSString *
). Это возвращает true, когда указатели совпадают, а не когда строки имеют одинаковое содержимое. Если вы хотите сравнить, являются ли две строки одинаковыми, вы должны использовать isEqualToString:
или isEqual:
(isEqual:
является более общим, поскольку он работает для всех типов объектов).
Во-вторых, compare:
возвращает 0
(NSOrderSame
), когда они совпадают, и 1
(NSOrderedDescending
), когда первое больше, чем второе. Таким образом, на самом деле он возвращает 1 только , когда они различаются (в частности, когда первое больше второго).