¿Debo declarar variables en la interfaz o usar la propiedad en el arco de object-c?

enfoque 1:

@interface MyController : UIViewController {
    UILabel *myText;
}

@property (nonatomic, strong) UILabel *myText;

enfoque 2:

@interface MyController : UIViewController
@property (nonatomic, strong) UILabel *myText;

enfoque 3:

@interface MyController : UIViewController {
    UILabel *myText;
}

He leído algunos artículos que hablan sobre este tipo de cosas, pero todavía no me doy cuenta de qué enfoque debo adoptar.

También encontré que alguien dijo que el enfoque 1 es una forma antigua, así que me gustaría conocer las mejores prácticas para ios sdk 6 utilizando ARC.

Sé que declarar variables usando la propiedad es una forma fácil de generar getter y setter, y alguien sugirió usarla. Sin embargo, me gustaría preguntar en caso de que una variable no sea para llamar por otra clase, ¿es necesaria para la variable que usa la propiedad? y configurarlo como variable privada dentro de la interfaz? ¿O es mejor para una variable que solo se declara dentro de la interfaz? Me gustaría aprender las mejores prácticas, así que perdóneme si esta es una pregunta tonta.

Además, algunos desarrolladores escriben @synthesize de esta manera.

@synthesize myText=_myText;

pero algunos escriben esto:

@synthesize myText;

También me gustaría saber la diferencia y cuál es preferible?

¡Muchas gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta