Ключевое слово @property (...) foo
используется внутри определения вашего класса.
Вам не нужно использовать ключевое слово @synthesize
в файле реализации, если вы укажете getters/setters
.
Пример:
@property int SomeInt;
---
-(int)SomeInt {
return _someInt;
}
-(void)setSomeInt:(int)newValue {
_someInt = newValue;
}
Или вы можете использовать либо @synthesize foo
, чтобы сообщить компилятору, что вам нужно сгенерировать getters/setters
, либо @dynamic
, чтобы сообщить компилятору, что эти методы будут доступны во время выполнения - оба в файле реализации.
На самом деле в свойствах Objective-C больше волшебства, читайте о них в Справочной библиотеке Apple .