【发布时间】: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