Что вы можете сделать, это:
NSString *stringOne = @"abcdef";
NSString *stringTwo = @"defabc";
NSComparisonResult result = [stringOne compare:stringTwo];
if (result == NSOrderedAscending) // stringOne < stringTwo
...
if (result == NSOrderedDescending) // stringOne > stringTwo
...
if (result == NSOrderedSame) // stringOne == stringTwo
...
Существуют также другие методы для выполнения различных видов сравнений (таких как нечувствительность к регистру, диакритическая нечувствительность и т. Д.), Но результат сравнения все еще можно рассматривать как вышеописанный. Кроме того, некоторым людям легче сравнивать result
с 0. Оператор, используемый для сравнения result
с 0, будет тем же оператором, который используется в других языках, где сравнение строк может выполняться напрямую:
if (result < 0) // stringOne < stringTwo
...
if (result > 0) // stringOne > stringTwo
...
if (result == 0) // stringOne == stringTwo
...
Большинство (если не все) из compare:...
методов NSString являются оболочками для compare:options:range:locale:
. Различные типы опций, которые вы можете передать, можно найти здесь .