在阅读Objective-C运行时指南时,我发现了以下语句:
在遗留运行时,如果更改类中实例变量的布局,则必须重新编译从其继承的类。
在现代运行时,如果更改类中实例变量的布局,则不必重新编译从其继承的类。
有人能为此提供一个例子吗?
答案 0 :(得分:1)
不确定。如果Apple发布AppKit.framework,其中NSView
包含一个新的实例变量,每个第三方库,框架或应用程序包含NSView
的子类 - 直接或间接 - (
在现代运行时,这已不再适用。 Apple可以发布带有附加实例变量的NSView的新实现,而不打破子类。
或者,正如格雷格帕克所说,“这就是不杀小猫的一切。”。