При чтении документации:
Для сравнения используется каноническое представление строк, которое для конкретной строки представляет собой длину строки плюс символы Юникода, составляющие строку.Когда этот метод сравнивает две строки, если отдельные Unicodes одинаковы, тогда строки равны, независимо от резервного хранилища.«Литерал» при применении к сравнению строк означает, что различные правила декомпозиции Unicode не применяются, а символы Unicode сравниваются по отдельности.Так, например, «Ö», представленный в виде составленной последовательности символов «O», и умлаут не будут сравниваться равными «Ö», представленному в виде одного символа Юникода. Когда вы знаете, что оба объекта являются строками, этот метод является более быстрым способом проверки равенства, чем isEqual:.
кажется, что это лучший доступный метод для сравнения строк и что он выполняет точното, что вам нужно, то есть: сначала он проверяет длину (если 2 строки имеют разную длину, нет необходимости проверять каждый содержащийся символ), затем, если длина одинакова, он сравнивает каждый символ.Просто и эффективно!