Могу ли я использовать [NSObject hash] для хранения NSView в словаре? - PullRequest
1 голос
/ 08 июня 2010

Я читал, что -hash не возвращает одно и то же значение на разных архитектурах.Однако в настоящее время я не вижу этого в документации.

Есть ли лучший способ хранить NSView в словаре без подклассов?

1 Ответ

0 голосов
/ 09 июня 2010

Вы можете быть смущены тем, что означает хеш в этом контексте. Хэш - это просто число, которое классы коллекции Какао используют для улучшения производительности. NSObject реализует этот метод, поэтому вам не нужно его переопределять, если только лучший, более значимый алгоритм хеширования не приведет к повышению производительности при сравнении / поиске объектов в массиве или словаре.

Поскольку никакие объекты не должны кэшировать свои хеш-значения на диске, комментарий просто подразумевает, что вы не должны полагаться на конкретные хеш-значения, возвращаемые классами Apple. Он считается второстепенной деталью реализации.

NSDictionary сохраняет свои значения, но копирует ключи. Поэтому вам не нужно ничего делать, чтобы сохранить ваши представления в словаре в качестве значений, но если вы хотите использовать представления в качестве ключей, вы должны реализовать -copyWithZone: method.

Подробнее читайте в документации Apple.

...