我正在一个类上实现-hash
方法,该方法应返回NSUInteger
。我的实现与此类似:
- (NSUInteger) hash {
return CFHash(self->cfObj);
}
现在,CFHash
返回CFHashCode
,typedef
编辑unsigned long
,但就我所知,NSUInteger
或者是unsigned long
unsigned int
或unsigned long
。
如果我在应用程序需要unsigned int
时返回{{1}},我会遇到哪些问题?
答案 0 :(得分:3)
您正在编译什么平台?正如您所指出的,NSUInteger
是无符号长整数或无符号整数,具体取决于您的体系结构是32位还是64位。对于64位OS X应用程序,这显然很好。
我认为即使在iOS或32位OS X应用上你也应该是安全的。 docs描述了CFHash
的返回类型:
An integer of type CFHashCode that represents a hashing value for cf.
这不是一个令人信服的理由,而是default implementation of hash
apparently uses CFHash
anyway。