涉及到記憶體管理,隻讀,多線程等很多功能時,setter和getter方法也就沒那麼簡單了;當然@property依然強大,很好用;
1:記憶體管理相關參數:
*:retain: (如果是oc對象類型),生成的setter會自動release舊值,retain新值;
*:assign:(适用于非oc對象) 這個是預設的值
*:copy:release舊值,copy新值;
2:是否生成setter
*:readwrite :同時生成getter和setter 這是預設情況;
*:readonly:隻讀,隻生成getter;
3:多線程管理
*:nonatomic:一般用這個,不加鎖的;
*:atomic:(預設)性能低,加鎖的;
4:制定setter和getter的方法名:
格式:如果要給setter方法制定方法名一定要加“:”(冒号) @property (setter = abc :) int
age;
getter方法就不用了;也可以同時制定;
一般開發中getter方法有時傳回的時bool型,一般方法名會制定,以is開頭;比如:isRich;