如何用swift语言输入cast
请让我知道如何用Swift语言输入cast如何用swift语言输入cast,swift,types,casting,Swift,Types,Casting,请让我知道如何用Swift语言输入cast [(FXImageView *)view setImageWithContentsOfURL:[items objectAtIndex:index]]; 这些代码应该翻译成 let view = FXImageView(imageWithContensOfURL(items[index])) 希望有帮助:)在swift中有三个用于打字的关键字 第一个是as。它用于从子类到超类的转换。如果您将用作类型转换,则会在编译时进行检查,以确保转换从未失败。所
[(FXImageView *)view setImageWithContentsOfURL:[items objectAtIndex:index]];
这些代码应该翻译成
let view = FXImageView(imageWithContensOfURL(items[index]))
希望有帮助:)在swift中有三个用于打字的关键字 第一个是
as
。它用于从子类到超类的转换。如果您将用作
类型转换,则会在编译时进行检查,以确保转换从未失败。所以它的用途相当有限。以下是一个示例:
class SuperClass {}
class SubClass: SuperClass {}
let a = SubClass()
let b = a as SuperClass
let someValue = 20
if let castedValue = someValue as? String {
print("casting successfull. The value is \(castedValue)")
} else {
print("casting failed")
}
第二个是as?
。它基本上是这样工作的。如果强制转换成功,则返回一个可选的.Some(您的对象)
,如果强制转换失败,则返回可选的.None
(etcnil
)。以下是一个示例:
class SuperClass {}
class SubClass: SuperClass {}
let a = SubClass()
let b = a as SuperClass
let someValue = 20
if let castedValue = someValue as? String {
print("casting successfull. The value is \(castedValue)")
} else {
print("casting failed")
}
在这里,从Int
到String
的强制转换显然会失败,而else
部分将被执行
第三个是as代码>。它的用例类似于as?
。如果强制转换成功,您将获得隐式展开选项,如果失败,您的程序将崩溃(与其他操作一样,包括!
)。这是一个使用示例
let someValue = 20
let castedValue = someValue as! String
只有在确信铸造操作始终成功的情况下,才应使用此工具。对于你的代码,我会这样写
if let imageView = view as? FXImageView {
imageView.setImageWithContentsOfURL(items[index])
} else {
// handle the fail part
}
或者使用map
方法打开可选
(view as? FXImageView).map { $0.setImageWithContentsOfURL(items[index]) }
很好地解释了此函数的可能重复项。是否尝试调用函数FXImageView()?