¿Declarar propiedades en la interfaz .h o en una extensión en el archivo .m?

En Objective-C, ¿es una buena práctica:

Declare objetos tales como botones en el .h y luego sintetice en el .m

.h
@interface SomeViewController : UIViewController  
  @property (strong, nonatomic) UIButton *someButton;  
@end

.m
@implementation SomeViewController  
  @synthesize someButton = _someButton;  
@end

o declararlos como ivars en el .m

@interface SomeViewController ()  
  @property (strong, nonatomic) UIButton *someButton;  
@end  

Noté que en muchos códigos de Apple, específicamente en su código de muestra Breadcrumbs, muchas de sus propiedades están declaradas en la interfaz. ¿Hay diferencia entre los dos? También me di cuenta de que cuando las propiedades se declaran en el@interface, se sintetizan automáticamente con un prefijo de subrayado, haciendo que elsomeButton = _someButton Síntesis inútil.

Respuestas a la pregunta(1)

Su respuesta a la pregunta