【问题标题】:Inheritance objective-c继承objective-c
【发布时间】:2012-03-10 18:49:10
【问题描述】:

谁能解释一下继承在 Objective-C 中是如何工作的?

假设我有继承类 A 的类 B。这两个类之间的粘合剂是什么,所以类 B 能够访问类 A 的属性和方法?

【问题讨论】:

标签: objective-c ios inheritance methods properties


【解决方案1】:

isa.

isa 在运行时标识类型,并引用其动态“胶水”(请参阅​​vtable)。由于isa,运行时知道(或能够确定)在发送消息时要执行哪些方法,以及self 的类型。

创建实例时,会为其分配isa

当然,另一个主要贡献者是编译器,当您进入较低级别时,它会接管 - 例如。直接访问实例变量并定义方法。在创建对象和发送消息时,编译器会添加许多调用。

【讨论】:

    【解决方案2】:

    试着理解下面的代码

    @interface SampleViewController : UIViewController{}
    

    这指定 SampleViewController 继承 UIViewController 并且您可以访问 UIViewController 的所有属性/方法。

    我同意贾斯汀所说的动态“胶水”。

    【讨论】:

      猜你喜欢
      • 2013-09-26
      • 2011-05-10
      • 2014-03-08
      • 1970-01-01
      • 2014-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多