Что такое NSObject isEqual: и хэш-функция по умолчанию?
У меня есть класс модели базы данных, который являетсяNSObject
, У меня есть набор этих объектов вNSMutableArray
, я используюindexOfObject:
найти совпадение. Проблема заключается в изменении адреса памяти объекта модели. Так что я переопределяюhash
метод для возврата идентификатора строки модели. Это однако не исправляет это. Я также должен переопределитьisEqual:
метод для сравнения стоимостиhash
метод.
What does the isEqual:
method use to determine equality by default?
Я предполагаю, что он использует адрес памяти. После прочтенияisEqual:
документация, я думал, что он использовал значение изhash
метод. Очевидно, что это не так, поскольку моя попытка переопределить это значение не решила мою первоначальную проблему.