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ò)
