1

好的,假设我有 A 类和 B 类。在 A 类中,假设我实现了一个名为 saveImage 的方法并在 .m 中实现了该方法。

是否足够简单地说,如果我这样做 [(ClassA*)self saveImage]; A 类中的那个方法会被调用吗?

这背后的逻辑是什么,谁能解释一下,以便我能更好地理解?

谢谢!

4

1 回答 1

2

强制转换主要用于编译时类型检查(请注意,为了安全起见,当您将消息发送id类型为向编译器承诺,是的,该对象确实是 A 类,而不是 B 类。因此,如果您尝试编译它,除非self实际上是一个实例Class A或子类(如您所承诺的),否则您将引发一个例外。如果你违背诺言,运行时会发疯:)

于 2012-04-28T03:10:05.283 回答