gpt4 book ai didi

ios - 如何使用 isKind(of : .) 检查对象类型?

转载 作者:搜寻专家 更新时间:2023-11-01 06:15:08 26 4
gpt4 key购买 nike

我使用 isKind(of:) 方法检查 UIView 是否属于 UIImageView 类型。

但是 swift 4 编译器给我一个错误:

Expected member name or constructor call after type name

我不知道它有什么问题。

func viewForZooming(in scrollView: UIScrollView) -> UIView? {
for subview: AnyObject in scrollView.subviews {
if subview.isKind(of: UIImageView) { //<-Expected member name or constructor call after type name
return subview as? UIView
}
}
return nil
}

最佳答案

一般来说,虽然它在检查 Objective-C 类型方面发挥了作用,但应避免使用 isKind(of:) 以支持简单的 as?is Swift 运算符。所以这段代码(更正):

func viewForZooming(in scrollView: UIScrollView) -> UIView? {
for subview in scrollView.subviews {
if subview.isKind(of: UIImageView.self) {
return subview
}
}
return nil
}

相当于:

func viewForZooming(in scrollView: UIScrollView) -> UIView? {
for subview in scrollView.subviews {
if subview is UIImageView {
return subview
}
}
return nil
}

编辑

整个方法可以很容易地替换为:

func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return scrollView.subviews.first(where: {$0 is UIImageView })
}

关于ios - 如何使用 isKind(of : .) 检查对象类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46807421/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com