variáveis ​​de instância em @interface; cabeçalho vs implementação

Existe alguma diferença entre declarar uma variável de instância privada no cabeçalho e declará-la na implementação?

em TestObj.h

@interface TestObj : NSObject
{
    int test;
}
@end

vs em TestObj.m

@interface TestObj()
{
    int test;
}
@end

Ambos parecem equivalentes a mim, existe alguma diferença real entre declarar uma variável de instância no cabeçalho vs na implementação, se não qual é a preferida? o@interface dentro do arquivo de implementação apenas parece uma maneira de declarar propriedades privadas, tem algum outro propósito fora disso?

questionAnswers(2)

yourAnswerToTheQuestion