2009-06-11 34 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位典型地),其可以使用合適的鑄造被添加到其他類型的積分上。只要確保使用長度大於或等於空指針長度的類型進行投射。這將確保您不會截斷指針。

+0

嚴格地說,這個問題與UIKit無關。 – Erik 2009-06-11 15:49:25