请告诉我如何使用Swift语言输入。
[(FXImageView *)view setImageWithContentsOfURL:[items objectAtIndex:index]];
答案 0 :(得分:1)
该代码应转换为类似
的内容let view = FXImageView(imageWithContensOfURL(items[index]))
希望有所帮助:)
答案 1 :(得分:0)
swift中有三个用于类型转换的关键字。
第一个是as
。它用于从子类转换为超类的情况。如果您使用as
进行类型转换,则会在编译时检查它是否保证转换永远不会失败。所以它的使用非常有限。这是一个示例:
class SuperClass {}
class SubClass: SuperClass {}
let a = SubClass()
let b = a as SuperClass
第二个是as?
。它基本上像这样工作。如果转换成功,则返回Optional.Some<YourType>(yourObject)
,如果失败则返回Optional<YourType>.None
(等nil
)。这是一个示例:
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
Optional
方法
(view as? FXImageView).map { $0.setImageWithContentsOfURL(items[index]) }