@property 是 Obj-C 2.0 版開始提供的一種功能,目的是要簡化一個 instance variable 的設定過程。
instance variable (以下簡稱 ivar ) 在 Obj-C 裡預設為 protected , 代表只有這個 class or 它的 subclass 可以 access 值。 如果這個 ivar 要給外部使用的話,那就必須必須加上 public 的 method setter/getter。 然而,每宣告一個要給外部使用的 ivar 就要宣告一組 setter/getter 太麻煩,因此 Obj-C 加入了 @property 的語法 。
舉例來說,原本想讓外部的人使用 weight 要這樣寫: