【问题标题】:Convert hash to NSNumberWithInt inconsistent?将哈希转换为 NSNumberWithInt 不一致?
【发布时间】:2012-01-25 06:31:01
【问题描述】:

我将对象的哈希值存储为该对象内的唯一标识符,如下所示:

[myObj setValue:[NSNumber numberWithInt:[myObj hash]] forKey:@"ID"];

但是在检索该键的值时,该值不再与散列一致,即这段代码:

NSLog(@"[myObj hash] %i",[myObj hash]);
NSLog(@"[myObj hash] NSNumber %@",[NSNumber numberWithInt:[myObj hash]]);
[myObj setValue:[NSNumber numberWithInt:[myObj hash]] forKey:@"ID"];
NSLog(@"myObj ID %@",[myObj valueForKey:@"ID"]);

产生类似于以下内容的输出:

[myObj hash] -976941568
[myObj hash] NSNumber -976941568
myObj ID 3584

我显然不了解哈希和/或键/值对的哪些基本内容?

汤普森

[编辑]

请原谅我的新手礼节! myObj 是一个 NSManagedObject,并且是键/值兼容的,所以 ID 只是我动态创建的一个键。

【问题讨论】:

  • 当你意外遇到一个大的负数时,你应该立即检查你是否像有符号一样显示一个无符号值。

标签: objective-c hash key-value


【解决方案1】:

哈希方法返回一个无符号整数,试试这个

[NSNumber numberWithUnsignedInteger:[myObj hash]];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-27
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    • 2012-11-11
    相关资源
    最近更新 更多