Свойства используются, чтобы избежать шаблонного кода для получения и установки переменных. В приведенном выше случае вы бы не объявляли методы получения и установки в заголовке, а вместо этого объявляли свойство для источника и синтезировали его в своем файле реализации.
В интерфейсе (.h) используйте ОДИН из них, а НЕ все:
@property (retain) XYPoint* origin; // will increment the retain count (strong)
@property (copy) XYPoint* origin; // will make your own copy with retain count 1 (strong)
@property (assign) XYPoint* origin; // will not increase the retain count (not strong)
В реализации (.m):
@synthesize origin;
В зависимости от того, как вы собираетесь использовать «происхождение», вы можете сохранить его, скопировать или назначить только (см. Выше).
В зависимости от того, на какую ОС и версию вы нацеливаетесь, вам может не потребоваться объявлять фактическую переменную или синтезировать ее (если я не помню неправильно), само свойство достаточно.