0

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

これは、ポインター NSValue *key = [NSValue valueWithPointer:somePointer]; に対してのみ機能します。

somePointer + someInt を加算して、結果からキーを作成するにはどうすればよいですか?

4

1 に答える 1

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ポインターの長さ以上の型でキャストするようにしてください。これにより、ポインターが切り捨てられないようになります。

于 2009-06-11T15:44:35.153 に答える