kvo 是提供一種方法俊性,當(dāng)某一個(gè)屬性改變搪桂,相對(duì)應(yīng)的objects就會(huì)被通知透敌,這樣就可以作出相應(yīng)的處理。
那kvo是怎么實(shí)現(xiàn)的踢械,kvo實(shí)現(xiàn)通過Objective-C強(qiáng)大的運(yùn)行時(shí)(runtime)實(shí)現(xiàn)酗电,當(dāng)?shù)谝淮斡^察某一個(gè)object時(shí),runtime會(huì)創(chuàng)建一個(gè)繼承原先class的subclass裸燎,在其中重寫了所有被觀察的key的(setter方法),然后將這個(gè)object的isa指針指向新的class泼疑,這些被重寫的setter實(shí)現(xiàn)了通知觀察者們德绿。