2009-06-11 14 views
0

NSMutableDictionaryのキーを作成する必要があります。理想的なキーは、ポインタと整数の合併です。ポインタと整数を追加してNSValueを作成する方法は?

これはポインタだけで動作します。 NSValue * key = [NSValue valueWithPointer:somePointer];

somePointer + someIntを一緒に追加し、結果からキーを形成するにはどうすればよいですか?私はこれを行うであろう

答えて

0

NSObject *p = <object> 
int n = 0xdeadbeef; 
NSValue *v = [NSValue valueWithPointer:(void *)((uint32_t)p + n)]; 

NSLog(@"p = %p n = %x v = %@",p,n,v); 

ポインタは、適切なキャストを使用して、他の整数型に追加することができ、そのサイズプラットフォームに依存する整数型(典型的には32または64ビット)です。長さがvoidポインターの長さ以上の型でキャストするようにしてください。これにより、ポインタを切り捨てることはありません。

+0

厳密に言えば、この質問はUIKitとは何ら関係していません。 – Erik

+0

合意。しかし、質問が出された文脈は、他人に役立つことがあります。 – dugla

関連する問題