Private ivar en @interface o @ implementación

¿Hay alguna razón para declarar un ivar privado en@interface en lugar de@implementation?

Veo un código como este en Internet (incluida la documentación proporcionada porManzan):

Foo.h

@interface Foo : NSObject {
@private
    id _foo;
}
@end

Foo.m

@implementation Foo
// do something with _foo
@end

El archivo de encabezado define la interfaz pública de una clase, mientras que un ivar privado es ... bueno ... privado. Entonces, ¿por qué no declararlo así?

Foo.h

@interface Foo : NSObject
@end

Foo.m

@implementation Foo {
@private
    id _foo;
}

// do something with _foo
@end

Respuestas a la pregunta(6)

Su respuesta a la pregunta