13
所以我有这样的代码:的UIView isKindOfClass斯威夫特3
if view.isKindOfClass(classType){...}
这斯威夫特2工作正常,但现在我在斯威夫特3,我得到这个错误:
类型的值UIView
没有任何成员isKindOfClass
如何在Swift 3中测试这个?
所以我有这样的代码:的UIView isKindOfClass斯威夫特3
if view.isKindOfClass(classType){...}
这斯威夫特2工作正常,但现在我在斯威夫特3,我得到这个错误:
类型的值UIView
没有任何成员isKindOfClass
如何在Swift 3中测试这个?
您可以使用isKind(of:)
但最好使用更SWIFTY is
和as
:
见哑例如:
import Foundation
class Base {}
class SuperX: Base {}
class X: SuperX {}
class Y {}
func f(p: Any) {
print("p: \(p)")
guard let x = p as? Base
else { return print(" Unacceptable") }
if x is X {
print(" X")
}
if x is SuperX {
print(" Super X")
}
else {
print(" Not X")
}
}
f(p: Base())
f(p: SuperX())
f(p: X())
f(p: "hey")
f(p: Y())
f(p: 7)
运行在操场代码的输出将是:
p: Base
Not X
p: SuperX
Super X
p: X
X
Super X
p: hey
Unacceptable
p: Y
Unacceptable
p: 7
Unacceptable
你可以试试这三个选项Swift 3 :
选项1:
if view is UITabBarItem {
}
选项2:
if view.isKind(of:UITabBarItem.self) {
}
选项3:
if view.isMember(of:UITabBarItem.self) {
}
isKind之间的差:以及isMember:的是:
在斯威夫特你通常会使用'is'运营商的确切类的实例,请参见http://计算器。 COM /问题/ 24019707 /使用-iskindofclass与 - 迅速。 –