我将对象的哈希值存储为该对象中的唯一标识符,如下所示:
[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只是我动态创建的一个键。答案 0 :(得分:1)
hash方法返回一个无符号整数,试试这个
[NSNumber numberWithUnsignedInteger:[myObj hash]];