KVC

setValue:ForKey:的調(diào)用流程

1、調(diào)用setValvue:ForKey: 方法,首先會(huì)去尋找setKey方法,如果有,直接賦值,沒(méi)有就會(huì)去尋_setKey方法?

2、如果沒(méi)有找到,就會(huì)調(diào)用一個(gè)叫accessInstanceVariblesDirectory(是否直接訪(fǎng)問(wèn)成員變量的方法),返回結(jié)果可以是YES 或者NO ,如果返回NO ,那么就表示沒(méi)有找到set方法就不可以直接訪(fǎng)問(wèn)成員變量了,那就直接報(bào)錯(cuò)

3、如果返回了YES,就表示,就算沒(méi)有set方法,你也可以直接訪(fǎng)問(wèn)成員變量,并賦值

4、訪(fǎng)問(wèn)成員變量的順序 _key _isKey key isKey 的順序查找并賦值,如果都沒(méi)找到,那么久直接報(bào)錯(cuò)了


value:ForKey:的調(diào)用流程

1、按順序查找get方法(getKey key iskey? ?_key)

2、沒(méi)有找到的話(huà),就會(huì)調(diào)用是否直接訪(fǎng)問(wèn)成員變量的方法accessInstanceVariblesDirectory

3、不能直接訪(fǎng)問(wèn)成員變量的話(huà),就會(huì)報(bào)錯(cuò)

4、可以直接訪(fǎng)問(wèn)成員變量的話(huà),也是按照 _key _isKey key isKey的順序來(lái)查找的,如果沒(méi)找到也會(huì)報(bào)錯(cuò)


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容