kvo和runtime有著密不可分的關(guān)系
- 當(dāng)你第一次觀察某個object 時秕狰,runtime會創(chuàng)建一個新的繼承原先class的subclass。在這個新的class中躁染,它重寫了所有被觀察的key鸣哀,然后將object的isa
指針指向新創(chuàng)建的class(這個指針告訴Objective-C運(yùn)行時某個object到底是哪種類型的object)。所以object神奇地變成了新的子類的實例吞彤。 - 重寫set方法
當(dāng)改變一個key時我衬,會觸發(fā)setKey方法,但這個方法被重寫了饰恕,并且在內(nèi)部添加了發(fā)送通知機(jī)制挠羔。例如willChange和changed