2013-03-01 2 views
1

В java есть метод .equals(). Что эквивалентно в Objective-C, так как я не хочу использовать ==?.equals() эквивалент

Например, если я хочу сравнить два массива, я бы прошел через них и посмотрел, совпадают ли их объекты.

for (int i = 0; i < array1.count; i++) { 
    if (array1[i].equals(array2[i])) { 
     do something 
     } 
} 

ответ

2

Строгий ответ на ваш вопрос «использование -isEqual:».

if ([array1[i] isEqual:array2[i]]) { ... 

Это, если вы пытаетесь выяснить, равны ли два массива, вы делаете это неправильно. Вместо попарного-сравнения на всех элементах, просто спросите, если массивы равны:

if ([array1 isEqual:array2]) { ... 

Некоторые классы, такие как NSArray*, также предоставляют специализированные методы равенства, которые ограничивают тип сравниваемых объекта. Они в основном просто используются для добавления дополнительного семантического значения в ваш код. Если вы хотите использовать его, это будет выглядеть как

if ([array1 isEqualToArray:array2]) { ... 

Если вы используете этот стиль, просто помните, что по сравнению объект должен быть действительно правильный класс.

Смежные вопросы