我在一个类上实现了-hash方法,它应该返回一个NSUInteger。我对它的实现如下所示:
- (NSUInteger) hash {
return CFHash(self->cfObj);
}现在,CFHash返回一个CFHashCode,这是一个经过typedef处理的unsigned long,但据我所知,NSUInteger既可以是unsigned long,也可以是unsigned int。
如果在应用程序需要unsigned int的情况下返回unsigned long,我会遇到什么问题
发布于 2012-03-26 19:58:11
你在为什么平台编译?正如您所指出的,NSUInteger既可以是无符号的长整型,也可以是无符号的整型,这取决于您的体系结构是32位还是64位。对于64位的OS应用程序来说,这显然没问题。
我认为即使是在iOS或32位OS应用程序上,你也应该是安全的。docs描述了CFHash的返回类型
An integer of type CFHashCode that represents a hashing value for cf.这不是一个令人信服的理由,但default implementation of hash apparently uses CFHash anyway。
https://stackoverflow.com/questions/9871501
复制相似问题