objective-c - 通过 Casting 调用另一个类中的方法?

标签 objective-c ios casting

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

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

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

谢谢!

最佳答案

转换主要用于编译时类型检查(请注意,为了安全起见,在向类型为 id 的对象发送消息时进行转换总是明智的。参见 here。它被忽略了由编译器(因此由运行时)执行。转换只是对编译器的 promise ,是的,该对象确实是 A 类,而不是 B 类。因此,如果您尝试编译它,除非 self 实际上是 A 类 或子类的实例(如您所 promise 的),您将引发异常。也就是说,如果您违背 promise ,运行时会生气 :)

关于objective-c - 通过 Casting 调用另一个类中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10360228/

相关文章:

ios - 编辑时 UITextField 中的文本向下跳转

iPhone - 在运行时以编程方式更改应用程序的图标

objective-c - 指定Class类的子类

javascript - 使用来自 obj-c 的参数发送 JSON 请求

ios - 如何使用 aws v2 从 amazon s3 获取路径的元数据?

C# 将不同的设置存储在一个对象中

objective-c - UIPageControl 值更改未触发

iphone/ipad - 使用 Autoresize 和 addSubview 时出现问题

ruby - 如何在 Ruby 中自动将类实例转换为 Float?

java - 括号中的类型名称是什么意思?