Этот вопрос касается селектора isEqual
в objc.О isEqual и hash
Я знаю, когда использование объекта isEqual
, они сравнили hash
, но как понять код последующего:
NSString *string = [NSString stringWithFormat:@"%d", 1];
NSLog(@"%d", [@"1" hash] == [string hash]); // output 1
Я прочитал хэш объекта не может быть таким же, почему выход 1?
Существует вопрос о причинности между 'isEqual' и' hash'. Действительно ли 'isEqual' делает' hash' равным? Или, причина 'hash' равно равна' isEqual'? – saitjr
isEqual true означает hash true. Только. – weston
, но адрес памяти '@" 1 "и' string' не одинаковый, мы не можем сказать, что объект тот же, почему 'isEqual' дает мне такой же результат? – saitjr