2012-01-24 9 views
0

私はそうのように、そのオブジェクト内で一意の識別子として、オブジェクトのハッシュ値を格納していない午前:NSNumberWithIntに矛盾するハッシュを変換しますか?

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

しかし、そのキーの値を取得するとき、値は、このコードをウィットために、もはやハッシュと一致しています。明確ではない下のIハッシュおよび/またはキー/値のペアについて、物事は何の基本的な

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

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"]); 

はへの出力を生成似ましたスタンド?

トンプソン

[EDIT]

恩赦私の初心者のマナー! myObjはNSManagedObjectであり、キー/値に準拠しているので、IDは単に私がその場で作成するキーです。

+0

あなたが予想外に高いマグニチュード負の数に遭遇するたびに、あなたはすぐにそれが署名されたかのように、符号なしの値を表示しているかどうかを確認する必要があります。 –

答えて

1

ハッシュ法は、符号なし整数を返し、これを試してみてください代わりに

[NSNumber numberWithUnsignedInteger:[myObj hash]];