建議:采用直接訪問取值的方法
- 直接取值 : _name、_age
- 屬性訪問 :self.name、self.age
區(qū)別:
- 直接訪問屬性速度快,編譯器生成代碼會(huì)直接訪問保存對(duì)象的內(nèi)存
- 直接訪問,不會(huì)調(diào)用getter方法。例如在ARC下訪問copy的屬性,不會(huì)拷貝該屬性,只會(huì)保留新值,釋放舊值。
- 直接訪問,不會(huì)觸發(fā)KVO
- 直接訪問,可以給setter和getter方法加斷點(diǎn),監(jiān)控該屬性的調(diào)用者和訪問時(shí)機(jī)
建議:
- 采用getter方法寫值,采用setter讀取直接訪問變量
- 初始化方法設(shè)置屬性值,直接訪問實(shí)例變量,根據(jù)情況而定是否采取getter方法
- 懶加載,必須采用setter方法寫值,不然永遠(yuǎn)都不會(huì)初始化!
總結(jié)
- 對(duì)象內(nèi)部讀取數(shù)據(jù)時(shí),對(duì)象讀數(shù)據(jù)采用直接變量來讀取,寫入數(shù)據(jù)采用屬性值獲取
- 初始化方法、dealloc方法中,直接通過實(shí)例變量來讀取
- 懶加載使用屬性值來讀取數(shù)據(jù)