gpt4 book ai didi

objective-c - 我们如何将 double 或 float 重新解释为 NSUInteger 以创建哈希?

转载 作者:行者123 更新时间:2023-12-02 05:26:33 26 4
gpt4 key购买 nike

这是我的 isEqual 和散列自定义运算符

- (BOOL)isEqual:(id)object;
{
BGSearchParameter * theOther = (BGSearchParameter *)object;

BOOL isTheOtherEqual;
isTheOtherEqual = isTheOtherEqual && [self.Location isEqual:theOther.Location];
isTheOtherEqual = isTheOtherEqual && [self.keyword isEqual:theOther.keyword];
isTheOtherEqual = isTheOtherEqual && (self.Distance == theOther.Distance);
isTheOtherEqual = isTheOtherEqual && (self.SortByWhat == theOther.SortByWhat);
isTheOtherEqual = isTheOtherEqual && (self.startFrom == theOther.startFrom);
isTheOtherEqual = isTheOtherEqual && (self.numberOfIDstoGrab == theOther.numberOfIDstoGrab);

return isTheOtherEqual;
}
- (NSUInteger)hash
{
NSUInteger returnValue=0;
returnValue ^= self.Location.hash;
returnValue ^= self.keyword.hash;

return returnValue;
}

那个人做的工作。但是,假设我想将距离和起始点合并到哈希中。

我想我会简单地添加:

returnValue ^= self.Distance;

这是一个错误,因为它不兼容。

那么我应该怎么做呢?

最佳答案

我最终将数字转换为 NSNumber 并得到了哈希值:

   returnValue ^= @(self.Distance).hash;
returnValue ^= @(self.SortByWhat).hash;
returnValue ^= @(self.startFrom).hash;
returnValue ^= @(self.numberOfIDstoGrab).hash;

马丁的回答很好。但是,无论如何结果应该是一样的,我不想实现另一个复杂的功能。

关于objective-c - 我们如何将 double 或 float 重新解释为 NSUInteger 以创建哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12996466/

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