我遇到了,沒遇到的...
------------------------------------------ 基礎(chǔ)不牢 --------------------------------------------------
昨天寫了一個(gè)loading動(dòng)畫逝段,中間都是懶加載,結(jié)果一直是nil范删。
起初矾利,我認(rèn)為是我懶加載寫錯(cuò)了嘁扼,各種找問題和測試信粮,然而我就苦逼了!
解決辦法:
1.Google趁啸,靠譜多了强缘。過程不想說--!
2.搜索之前隱約感覺到時(shí)Self和_兩個(gè)之間出了問題不傅;懶加載本身就是get方法旅掂,如果不調(diào)用get方法是不會(huì)運(yùn)行到懶加載這代碼塊。
3.打印一下這個(gè)view(懶加載)访娶,_xx直接輸出nil商虐,不會(huì)進(jìn)入代碼塊;換self.xx,加載成功....
證據(jù)如下:
知道問題所在秘车,那就去找原因典勇!走你!
搜索簡書里面就有很多人提到了鲫尊〕杖幔總結(jié)歸納一下:
Self.test 和 “_test”調(diào)用是有區(qū)別的:
簡單說就是Self是通過訪問方法的引用,包括get和set方法疫向。(此處來自http://www.reibang.com/p/f33bc2c369cc )
_test是直接引用,不通過get和set方法豪嚎。既然不走get和set方法搔驼,恰好你引用的時(shí)候用的_test,就GAME OVER! 不會(huì)調(diào)用懶加載侈询,這就重現(xiàn)了我的問題舌涨!技能+1
換一個(gè)說法就是self.test是調(diào)用_test的get和set方法,而_test直接訪問變量扔字,沒有調(diào)用get和set方法囊嘉!
這里又引出一個(gè)問題:點(diǎn)語法是否真的了解?
完結(jié)8镂Eち弧!我去Google看看大神的回答