Propiedad Objective-C y sintetizar lógica

¿Cuál es el nombre real de la variable de instancia, por ejemplo, topSpeed, a partir de las conferencias de la Universidad de Stanford sobre el desarrollo de Objective-C e iOS?

Aquí está el código:

@property (nonatomic) double topSpeed;

Mirando este código, pensaré que he definido una variable topSpeed en la clase. No puedo entender por qué declarará automáticamente el método getter con el mismo nombre que el nombre de la variable: topSpeed?

Otra pregunta es cuando usamos

@synthesize topSpeed = _topSpeed

Y si miramos lo que generará @synthesize:

- (double) setTopSpeed:(double)speed
{
   _topSpeed = speed;
}


- (double) topSpeed
{
   return _topSpeed;
}

¿Qué es _topSpeed aquí y qué es topSpeed? He declarado una variable topSpeed, no la _topSpeed. ¿Qué sucede si no uso la propiedad, cuál sería el nombre de la variable?

Respuestas a la pregunta(6)

Su respuesta a la pregunta