Перед сравнением вы всегда можете убедиться, что они в одном и том же случае:
if ([[stringX uppercaseString] isEqualToString:[stringY uppercaseString]]) {
// They're equal
}
Основным преимуществом является то, что вы избегаете потенциальной проблемы, описанной matm, относительно сравнения нулевых строк. Вы можете либо проверить, что строка не равна nil, прежде чем выполнять один из методов compare:options:
, или вы можете быть ленивым (как я) и игнорировать добавочную стоимость создания новой строки для каждого сравнения (которая минимальна, если только делает одно или два сравнения).