iphone - cocoa touch español
¿Cómo puedo agregar objetos CGPoint a un NSArray de la manera más fácil? (4)
¿Has echado un vistazo a CFMutableArray
? Eso podría funcionar mejor para ti.
Tengo alrededor de 50 objetos CGPoint que describen algo así como una "ruta", y quiero agregarlos a un NSArray. Va a ser un método que simplemente devolverá el CGPoint correspondiente para un índice dado. No quiero crear 50 variables como p1 = ...; p2 = ..., y así sucesivamente. ¿Hay alguna manera sencilla que me permita definir esos puntos "instantáneamente" al inicializar NSArray con objetos?
También puede escribir esto de forma estándar en C / C ++:
CGPoint oldschool[] = { CGPointMake(5.5, 6.6),
CGPointMake(7.7, 8.8) };
CGPoint p2 = oldschool[1];
Yo uso esto:
Crear matriz:
NSArray *myArray = @[[NSValue valueWithCGPoint:CGPointMake(30.0, 150.0)],[NSValue valueWithCGPoint:CGPointMake(41.67, 145.19)]];
Obtiene el primer objeto CGPoint:
CGPoint myPoint = [myArray[0] CGPointValue];
Con UIKit
Apple agregó soporte para CGPoint a NSValue
, por lo que puede hacer:
NSArray *points = [NSArray arrayWithObjects:
[NSValue valueWithCGPoint:CGPointMake(5.5, 6.6)],
[NSValue valueWithCGPoint:CGPointMake(7.7, 8.8)],
nil];
Enumere tantas instancias [NSValue] como CGPoint y termine la lista en cero. Todos los objetos en esta estructura se lanzan automáticamente.
Por otro lado, cuando extrae los valores de la matriz:
NSValue *val = [points objectAtIndex:0];
CGPoint p = [val CGPointValue];