Свойства только для того, чтобы связать некоторые «метаданные» с вашими переменными, которые будут использоваться при доступе к этому через объект.Директива @synthesize сгенерирует метод получения и установки переменной, используя свойства config.
Например:
self.a = [CC_bla_bla load_value:123123]; // The object is retained because of the property
// This is equivalent to the previous line
[self setA:[CC_bla_bla load_value:123123]];
// ------
// By the same way
self.a;
// is equivalent to
[self a];
// ------
// method generated by your property
- (void)setA:(CC_bla_bla *)newA
{
[newA retain];
[a release];
a = newA;
}
Но если вы используете переменную напрямую, не передавая объектне используйте значение свойства.Например:
a = [CC_bla_bla load_value:123123]; // The object is not retained so you may have unexcepted behaviors
// A good solution
a = [[CC_bla_bla load_value:123123] retain];
Надеюсь, это поможет вам прояснить некоторые моменты.Для дальнейшего чтения вы можете посмотреть этот учебник .