Declaração de propriedades e variáveis de instância

Percebo que você pode 'declarar duas vezes' uma variável desta maneira:

@interface A {
    NSString *instanceVariable;
}
@property (nonatomic, retain) NSString *instanceVariable;
@end

Isso tem o mesmo efeito que apenas:

@interface A {
}
@property (nonatomic, retain) NSString *instanceVariable;
@end

Por que o compilador não reclama em situações como essa?

questionAnswers(1)

yourAnswerToTheQuestion