Для какой платформы вы компилируете? Как вы указали, NSUInteger
- это либо unsigned long, либо unsigned int, в зависимости от того, является ли ваша архитектура 32- или 64-битной. Для 64-битных приложений OS X это, очевидно, хорошо.
Я думаю, что вы должны быть в безопасности даже на iOS или 32-битных приложениях OS X. документы описывают тип возврата CFHash
:
An integer of type CFHashCode that represents a hashing value for cf.
Это не веская причина, но реализация hash
по умолчанию *1011*, по-видимому, использует CFHash
в любом случае .