Не гарантируется, что хэши будут различаться для разных объектов.На самом деле хеш-коллизии произойдут.Только два свойства, которые должен гарантировать метод -hash
: (оба взяты из документации):
Если два объекта равны (как определеноisEqual: метод), они должны иметь одно и то же значение хеш-функции.
Если в коллекцию добавлен изменяемый объект, использующий значения хеш-функции для определения позиции объекта в коллекции, возвращаемое значениеметодом hash объекта не должно изменяться, пока объект находится в коллекции.