2009-06-11 2 views
0

Мне нужно создать ключ для NSMutableDictionary. Идеальным ключом будет слияние указателя и целого числа.Как создать NSValue из добавления указателя и целого числа?

Это будет работать только для указателя NSValue * key = [Значение NSValueWithPointer: 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

 Смежные вопросы

  • Нет связанных вопросов^_^