На x86, для цикличного выполнения может быть сделан на уровне ассемблера, не делая некоторое время цикл. цикл инструкция уменьшает значение регистра ecx и переходит к операнду, если ecx больше, чем 0, это ничего не делает иначе. Это - классик для цикла.
mov ecx, 0x00000010h
loop_start:
;loop body
loop loop_start
;end of loop
Я предполагаю, что NSObject
isEquals
использует оператор ==
, а хэш
использует адрес памяти.
Метод isEquals
никогда не должен использовать хэш
в качестве абсолютного теста на равенство. Гарантируется наличие двух объектов с одинаковым hashCode
, если вы ищете достаточное количество объектов (просто создайте более 2 ^ 32 разных объектов, и по крайней мере два из них будут иметь одинаковый хэш
]).
Другими словами, хэш
требует следующей спецификации: если два объекта равны, то их хэш
должен быть равным; однако, если значения хэша
двух объектов равны, они не обязательно равны.
В качестве подсказки: