gpt4 book ai didi

objective-c - 当需要 unsigned int 时返回 unsigned long 的后果

转载 作者:行者123 更新时间:2023-12-03 17:35:40 26 4
gpt4 key购买 nike

我正在一个类上实现 -hash 方法,该方法应该返回一个 NSUInteger。我的实现与此类似:

- (NSUInteger) hash {
return CFHash(self->cfObj);
}

现在,CFHash 返回一个 CFHashCode,它是一个 typedefed unsigned long,但只要我知道 NSUInteger 要么是 unsigned long 要么是 unsigned int

如果我在应用程序需要 unsigned int 时返回 unsigned long,会遇到什么问题?

最佳答案

您正在为什么平台进行编译?正如您所指出的,NSUInteger 是一个 unsigned long 或 unsigned int,具体取决于您的体系结构是 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 .

关于objective-c - 当需要 unsigned int 时返回 unsigned long 的后果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9871501/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com