我为什么要在Swift中使用类型转换?
我正在学习语言,遇到了类型转换的问题(例如向下转换和向上转换等),但是在我看来,这似乎有点麻烦。我为什么要打字一个物体?什么时候在现实生活中的应用程序或代码中有用? 我在互联网上看了一段时间,但似乎找不到明确的答案。我真的很坚持,所以一些帮助会很棒!
谢谢!
答案 0 :(得分:6)
这里的关键案例是垂头丧气。您之所以这样做,是因为您可能知道对象实际上是什么类型,但是编译器不知道,因此它不会让您向该对象发送该类型的消息。对象。
示例:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let dest = segue.destination as? FlipsideViewController {
dest.delegate = self
}
}
segue.destination
键入为UIViewController;这只是事实,而不是由您自己决定,因为segue的目的地必须能够是任何种UIViewController。
只有您知道这个视图控制器实际上是FlipsideViewController。如果您不告诉编译器,则无法设置其delegate
属性(普通的UIViewController没有delegate
属性)。
所以总结一下:常见的垂头丧气的情况是,由于任何子类需要被接受,因此需要将类型声明为超类,但是在特定情况下您知道 子类,因此您需要对此进行简化。
答案 1 :(得分:0)
Typecasting。 假设正在根据服务器响应设置变量值。它可以是多个对象类型,例如String,Int,Double。然后,您需要进行类型转换,以确切了解要查找的类型。