2011-07-04 9 views
10

Así que tengo una matriz, llena de CGRects. Esa parte está bien. El problema es que cuando voy a recuperar los CGRects de la matriz, obtengo errores extraños. Mira mi código Gracias por adelantado.CGRect a un NSValue en una matriz y viceversa

NSArray *frameLocations = [NSArray arrayWithObjects: 
          [NSValue valueWithCGRect:CGRectMake(20, 20, 121, 124)], 
          [NSValue valueWithCGRect:CGRectMake(176, 20, 121, 124)], 
          nil]; 

de lo que reciba la trama en un bucle, como esto:

CGRect *imageFrame = [[frameLocations objectAtIndex:i] CGRectValue]; 

he intentado un montón de diferentes variaciones, la difusión de esa línea a lo largo de múltiples variables. Pero parece que no puedo entenderlo. Gracias por adelantado.

Respuesta

15

Probar:

CGRect imageFrame = [[frameLocations objectAtIndex:i] CGRectValue]; 

se obtiene una CGRect real atrás, no un puntero a una CGRect, porque es un tipo primitivo de estilo C, no un objeto de Objective-C.

Aparte de que su código sea correcto.

+0

Wow, me siento tonta. Muchas gracias. Eso realmente me ayuda. – Andrew

+2

No se sienta tonto - la verdad de la cuestión es que lo que es un estilo de C primitivo y lo que es un objeto de Objective-C es a menudo sólo una decisión pragmática, en función del rendimiento. Usted obtendrá una idea de lo que es que con el tiempo, pero no hay ninguna diferencia inherente en las convenciones de nomenclatura o algo por el estilo, así que es fácil confundir las dos cosas a la primera. – Tommy

+5

Sí, deberían haber llamado Subjetivo-C. –

Cuestiones relacionadas