Иногда я нахожу код, который проверяет, совпадают ли два NSString
с:
if ([str1 compare:str2] == NSOrderedSame) {
// Do something
}
Теперь я считаю, что это менее читабельно, чем использование isEqualToString:
, и у него также есть некоторые неприятные побочные эффекты, например, если str1 == nil
if (..) оценивается как true, или когда str2 == nil
хаос может сорваться на нас в соответствии с Apple документов. ( Редактировать : Как указывает хетфинч, если str1 == nil && str2 == nil
оба варианта дают неправильный результат. Поэтому вам все равно нужно защититься от этого случая).
Но перед тем, как я начну бороться с этими утверждениями в коде моей компании, я хотел убедиться, что не пропустил какой-то важный момент.
Итак, мой вопрос сводится к следующему: есть ли разница между compare:
до NSOrderedSame
и isEqual:
?