What you can do is:
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
...
There are also other methods for performing different kinds of comparisons (such as case-insensitivity, diacritic insensitivity, etc), but the result of the comparison can still be treated like the above. Alternatively, some people find it easier to compare result
to 0. The operator used to compare result
to 0 would be the same operator used in other languages where string comparisons can be done directly:
if (result < 0) // stringOne < stringTwo
...
if (result > 0) // stringOne > stringTwo
...
if (result == 0) // stringOne == stringTwo
...
Most (if not all) of the compare:...
methods of NSString are wrappers for compare:options:range:locale:
. The different kinds of options that you can pass can be found here.