如何通过添加指针和整数来创建NSValue?

时间:2009-06-11 15:28:56

标签: ios iphone nsvalue

我需要为NSMutableDictionary创建一个键。理想的关键是指针和整数的合并。

这只适用于指针 NSValue * key = [NSValue valueWithPointer:somePointer];

如何将somePointer + someInt加在一起,然后从结果中形成一个键?

1 个答案:

答案 0 :(得分: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指针长度的类型进行强制转换。这将确保您不截断指针。