Они делают все, что вы им сказали в выражении @property
или в вашей собственной реализации, если вы решили написать их.Чаще всего причина использования средств доступа, а не прямого изменения переменных экземпляра, заключается в том, чтобы избежать утечек памяти.Представьте себе переменную экземпляра NSString
, объявленную с
@property (nonatomic, retain) NSString *myString;
@synthesize myString;
. Эти строки генерируют метод доступа, который корректно вызывает release
и retain
, когда вы хотите изменить свойство myString
объекта.Если вы не вызывали метод доступа, вы могли бы потенциально утратить старое значение, если только вы не были осторожны при управлении памятью самостоятельно.