0 votes

Question sur UIKit. Je dois créer une NSValue à partir de l'addition d'un pointeur et d'un entier ?

Je dois créer une clé pour un NSMutableDictionary. La clé idéale serait la fusion d'un pointeur et d'un nombre entier.

Cela fonctionnera uniquement pour le pointeur NSValue *key = [NSValue valueWithPointer:somePointer] ;

Comment additionner somePointer + someInt et former une clé à partir du résultat ?

Merci, Doug

0voto

Erik Points 521

Je ferais ça :

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

NSLog(@"p = %p n = %x v = %@",p,n,v);

Les pointeurs sont des types entiers dont la taille dépend de votre plate-forme (généralement 32 ou 64 bits) et qui peuvent être ajoutés à d'autres types entiers à l'aide d'un cast approprié. Veillez simplement à utiliser un type dont la longueur est supérieure ou égale à la longueur d'un pointeur void. Cela vous permettra de ne pas tronquer le pointeur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X