天天看點

黑馬程式員-OC記憶體管理 @property的增強

  涉及到記憶體管理,隻讀,多線程等很多功能時,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;