我为什么要在 Swift 中使用类型转换?
我正在学习这门语言,并且遇到了类型转换的主题(例如向下和向上转换等),但在我看来这似乎有点麻烦。为什么我要对一个对象进行类型转换?这什么时候在现实生活中的应用程序或代码中有用? 我在网上看了一会儿,但似乎找不到明确的答案。我真的坚持这个所以一些帮助会很棒!
提前致谢!
最佳答案
这里的关键案例是沮丧。您会这样做,因为您可能知道对象的真正类型,但编译器不知道,因此它不会让您将该类型的消息发送给对象。
例子:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let dest = segue.destination as? FlipsideViewController {
dest.delegate = self
}
}
segue.destination
类型为 UIViewController;这只是一个事实,并不取决于您,因为 segue 的目的地需要能够是任何类型的 UIViewController。
只有您知道这个 View Controller 实际上是一个FlipsideViewController。如果你不告诉编译器,你不能设置它的 delegate
属性(一个普通的 vanilla UIViewController 没有 delegate
属性)。
所以总结一下:常见的向下转型情况是当一个类型需要被声明为父类(super class)时,因为任何子类都需要被接受,但是在特定的实例中你知道什么 它是子类,因此您需要向下转换。
关于swift - 为什么要在 Swift 中使用类型转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51595659/