好的,假设我有 A 类和 B 类。在 A 类中,假设我实现了一个名为 saveImage 的方法并在 .m 中实现了该方法。
是否足够简单地说,如果我这样做 [(ClassA*)self saveImage]; A 类中的那个方法会被调用吗?
这背后的逻辑是什么,谁能解释一下,以便我能更好地理解?
谢谢!
好的,假设我有 A 类和 B 类。在 A 类中,假设我实现了一个名为 saveImage 的方法并在 .m 中实现了该方法。
是否足够简单地说,如果我这样做 [(ClassA*)self saveImage]; A 类中的那个方法会被调用吗?
这背后的逻辑是什么,谁能解释一下,以便我能更好地理解?
谢谢!
强制转换主要用于编译时类型检查(请注意,为了安全起见,当您将消息发送id
到类型为向编译器承诺,是的,该对象确实是 A 类,而不是 B 类。因此,如果您尝试编译它,除非self
实际上是一个实例Class A
或子类(如您所承诺的),否则您将引发一个例外。如果你违背诺言,运行时会发疯:)