为什么要在Swift中使用类型转换?

时间:2018-07-30 13:57:58

标签: swift casting typecast-operator

我为什么要在Swift中使用类型转换?

我正在学习语言,遇到了类型转换的问题(例如向下转换和向上转换等),但是在我看来,这似乎有点麻烦。我为什么要打字一个物体?什么时候在现实生活中的应用程序或代码中有用? 我在互联网上看了一段时间,但似乎找不到明确的答案。我真的很坚持,所以一些帮助会很棒!

谢谢!

2 个答案:

答案 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。然后,您需要进行类型转换,以确切了解要查找的类型。