2011-08-23 13 views
9

Como un doop he estado declarando Variables Instantáneas (iVar) y luego @property en el archivo .h de interfaz desde hace un tiempo.¿Debo continuar usando iVar y @property (no atómico, retener) más @synthesize en Recuento automático de referencias (ARC)?

@interface MainGameViewController : UIViewController { 
    UserFactorsViewController *userFactorsViewController; 
    UITableView *myTableView; 
} 
@property (nonatomic, retain) UserFactorsViewController *userFactorsViewController; 
@property (nonatomic, retain) IBOutlet UITableView *myTableView; 

Bajo Recuento de referencia automática, simplemente debo prescindir de Ivar y recorrer todo @property? ¿Debo tener la palabra "retener" en la propiedad? ¿Qué sucede si estoy implementando para iOS 4.3, si todavía utilizo ARC?

Respuesta

10

No se sienta como un doop, aunque el compilador agregará ivars para usted si no los incluye, mucha gente todavía los declara (muchos autores de libros también) para hacer que el código sea un poco más fácil de usar. leer (más fácil de distinguir entre ivar y propiedad).

Al crear una propiedad ahora, Apple quiere que piense en términos de Object Graphs, por lo que investigue los atributos de propiedades "fuertes" y "débiles" en lugar de retener y liberar.

Además, iOS 4 está configurado como un objetivo para ARC, por lo que debería estar bien. Pero creo que si quisieras soportar iOS 3.0 tendrías que administrar manualmente retener y liberar versiones como antes.

+0

Gracias. Pero, ¿cuál es la forma "correcta" de hacerlo bajo ARC? ¿Debería tener propiedad y dejar que la síntesis se encargue del resto? y acaba de poner la propiedad (no atómica) para cada variable de objeto FUERTE que tengo? – Ben

+2

'@property (no atómico, fuerte) UserFactorsViewController * userFactorsViewController;' '@property (no atómico, fuerte) IBOutlet UITableView * myTableView;' – 5StringRyan

+0

Muchas gracias Hans. Lo aprecio. – Ben

Cuestiones relacionadas