Свойство Objective-C и синтезировать логику
Каково действительное имя переменной экземпляра, скажем, topSpeed, как в лекциях Стэнфордского университета о разработке Objective-C и iOS?
Вот код:
@property (nonatomic) double topSpeed;
Глядя на этот код, я буду думать, что я определил переменную topSpeed в классе. Я не могу понять, почему он будет автоматически объявлять метод получения с именем, совпадающим с именем переменной - topSpeed?
Другой вопрос, когда мы используем
@synthesize topSpeed = _topSpeed
И если мы посмотрим на то, что сгенерирует @synthesize:
- (double) setTopSpeed:(double)speed
{
_topSpeed = speed;
}
- (double) topSpeed
{
return _topSpeed;
}
Что такое _topSpeed здесь и что такое topSpeed? Я объявил переменную topSpeed, а не _topSpeed. Что если я не использую свойство, каким будет имя переменной?