【问题标题】:Is casting the same as converting in swift? [duplicate]转换与快速转换相同吗? [复制]
【发布时间】:2016-11-17 19:07:20
【问题描述】:

当偶然发现使用“as! or as?”进行转换时,我还注意到类型也可以使用括号内的所需类型进行转换,例如:

let x : Int = 42
var myString = String(x)

这让我好奇地问转换和铸造是否相同?但是,当我尝试在另一个示例中使用引用类型进行转换时,我认为编译器不允许这样做,或者至少它给了我一个错误,例如:

let sutCast = storyboard.instantiateViewController(withIdentifier: "ItemListViewController") as! ItemListViewController
let sutConvert = ItemListViewController(storyboard.instantiateViewController(withIdentifier: "ItemListViewController"))

是否可以肯定地说或假设在 Swift 中,引用类型不允许转换,并且强制转换与转换不同,因为它取决于对象是引用类型还是值类型?

【问题讨论】:

  • 编译器给你的错误是什么?
  • 变量“sutConvert”的错误显示是 Xcode 尝试修复它并且无法编译。 Xcode 尝试修复的错误是“Missing argument label 'coder:' in call”@AdamPro13

标签: swift casting type-conversion


【解决方案1】:

来自documentation

类型转换是一种检查实例类型的方法,或者将该实例视为与其自身类层次结构中其他位置不同的超类或子类。

这是一种将一种类型转换为另一种类型的方法,但它也可以用于更多,例如检查类型等。

有关更多信息,请参阅文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 2013-11-07
    • 1970-01-01
    • 1970-01-01
    • 2023-02-13
    相关资源
    最近更新 更多