2010-03-21 3 views
4

J'ai regardé d'innombrables questions ici et ailleurs et ne peux pas pour la vie de moi comprendre ce que je fais mal.Stocker et récupérer des CGPoints dans NSMutableArray

Je suis en train de stocker un tableau de Points Cg comme NSValues ​​à l'intérieur d'un NSMutableArray désigné des points comme tant sur l'iPhone:

NSValue *point = [NSValue valueWithCGPoint:firstTouch]; 
NSLog(@"NSValue *point = %@", point); 
[points addObject:point]; 

NSLOG OUTPUT 
NSValue *point = NSPoint: {120, 221} 

Tout va convertir en douceur de la CGPoint à NSValue. Mais quand j'essaie de récupérer le point, je n'ai rien.

NSValue *getPoint = [points objectAtIndex:0]; 
CGPoint thePoint = [getPoint CGPointValue]; 
NSLog(@"Point = %@", NSStringFromCGPoint(thePoint)); 

NSLOG OUTPUT 
Point = {0, 0} 

Les points doivent être identiques, mais j'obtiens un résultat nul.

À des fins de test, cela se passe dans la méthode touchesBegan.

Est-ce que quelqu'un a une idée d'où je vais mal? Merci d'avance.

+5

est nul 'de points'? – kennytm

+0

Merci Kenny, c'était le problème. – MattDice

Répondre

2

Je n'ai jamais alloué mon tableau en mémoire et l'ai initialisé. Mes points n'étaient pas stockés dans un tableau parce qu'il n'y avait pas de tableau qui existait.

+2

homme si j'avais un dollar pour chaque fois que cela m'est arrivé ... –

-1

d'abord allouer votre tableau mutable en mémoire:

points = [[NSMutableArray alloc] init]; 

Insérez ensuite.

1

pour ajouter CGPoint à NSMutableArray

[ArrObj addObject:NSStringFromCGPoint(PointObj)]; 

pour obtenir CGPoint de NSMutableArray

CGPoint pointObj2 = CGPointFromString([ArrObj objectAtIndex:index]); 

peut-il vous aider ..

Questions connexes