Легкий, но неэффективный путь состоит в том, чтобы возвратить тот же -hash
значение для каждого экземпляра. Иначе, да, необходимо реализовать хеш, базирующийся только на объектах, которые влияют на равенство. Это хитро при использовании слабых сравнений в -isEqual:
(например, нечувствительные к регистру сравнения строк). Для ints можно обычно использовать сам интервал, если you’ll соответствовать NSNumbers.
Don’t используют | =, тем не менее, это будет насыщать. Используйте ^ = вместо этого.
Случайный забавный факт: [[NSNumber numberWithInt:0] isEqual:[NSNumber numberWithBool:NO]]
, но [[NSNumber numberWithInt:0] hash] != [[NSNumber numberWithBool:NO] hash]
. (rdar://4538282, откройтесь с 05 мая 2006)
Да; SuspendLayout останавливает отрисовку элемента управления (или, скорее, обработку запросов макета), что по умолчанию просачивается в дочернюю структуру.
Другими словами: «никто» больше не вызывает подпрограмму рисования.