iOS - почему это работает, когда я сравниваю два номера NSN с «==»?

В моем приложении я случайно использовал "==" при сравнении двухNSNumber объекты вроде так:

NSNumber *number1;
NSNumber *number2;

Позже, после этих объектовint значения были установлены, я случайно сделал это:

if (number1 == number2) {
    NSLog(@"THEY'RE EQUAL");
}

И, смущающе, это сработало! Я мог бы поклясться, что меня учили так:

if (number1.intValue == number2.intValue) {
    NSLog(@"THEY'RE EQUAL");
}

Как с помощью "==" между двумяNSNumber объекты работают, а почему? Означает ли это, что можно сравнивать их таким образом, или это просто случайность, и, как правило, это не гарантируется каждый раз? Это действительно смутило меня :(

Ответы на вопрос(4)

Ваш ответ на вопрос