以前我介紹了set和get方法,但在實際操做時,咱們會發現重複的代碼量太大,若是有幾十個成員變量要聲明,那麼就要對應有幾十個set和get方法,爲了免去手工書寫set和get方法繁瑣的代碼,人民的英雄@property應運而生。xcode
@property是編譯器的指令,那麼什麼是編譯器的指令呢?其實就是去告訴編譯器要作什麼啦~安全
@property 告訴編譯聲明實現set、get方法atom
這裏出現了陌生的標識符 .net
咱們簡單的介紹一下code
nonatomic 表明着線路安全對象
在手機還只有512M內存時,若是對屬性加鎖,那麼手機運行速度就會變得很是慢,因此對屬性通常都是不加鎖的,這樣的速度相對快不少,這個習慣延續到了今天。內存
strong和weak 表明內存管理。字符串
直接賦值的如int double等,直接寫成get
@property (nonatomic)int age;編譯器
而對象(字符串)要用strong做爲參數。
這樣是否是方便不少了呢?
其實在xcode早期版本,@property只是聲明set和get方法,實現它們還須要另外一個指令@synthesize
可是@synthesize 已經消失在滾滾oc長河當中,當作瞭解就好。