Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何通过指针和整数相加来创建NSValue?_Ios_Iphone_Nsvalue - Fatal编程技术网

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

Ios 如何通过指针和整数相加来创建NSValue?,ios,iphone,nsvalue,Ios,Iphone,Nsvalue,我需要为NSMutableDictionary创建一个键。理想的键是指针和整数的合并 这只适用于指针 NSValue*key=[NSValue-valueWithPointer:somePointer] 如何将somePointer+someInt相加,然后根据结果形成一个键?我会这样做: NSObject *p = <object> int n = 0xdeadbeef; NSValue *v = [NSValue valueWithPointer:(void *)((uint3

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

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

如何将somePointer+someInt相加,然后根据结果形成一个键?

我会这样做:

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

NSLog(@"p = %p n = %x v = %@",p,n,v);
NSObject*p=
int n=0x0;
NSValue*v=[NSValue VALUE WITH POINTER:(void*)((uint32_t)p+n)];
NSLog(@“p=%p n=%x v=%@”,p,n,v);

指针是整数类型,其大小取决于您的平台(通常为32或64位),可以使用合适的强制转换将其添加到其他整数类型。只需确保使用长度大于或等于空指针长度的类型强制转换即可。这将确保您不会截断指针。

严格来说,这个问题与UIKit没有任何关系。同意。然而,问题产生的背景可能对其他人有所帮助。