在UIViewController
子类中,需要声明一个名为的变量webView
,其类型可以为UIWebView
或WKWebView
(取决于iOS版本)。
是否有比以下选项之一更好的方法(也许使用枚举?):
UIView
然后在每次需要访问它时有条件地强制转换为两种类型UIViewController
超类中声明变量,而是在两个特定的UIViewController
子类中两次声明了特定类型的变量?感觉违反了“不要重复自己” / DRY的原则。您可以定义一个协议,其中包含要在视图上调用的常用方法:
protocol MyWebView {
// ...
}
然后使这两个UIWebView
和WKWebView
符合该协议(经由扩展):
extension UIWebView : MyWebView {
}
@available(iOS 8.0, *)
extension WKWebView : MyWebView {
}
现在您可以将实例变量声明为
var webView : MyWebView!
并根据iOS版本对其进行初始化:
if #available(iOS 8, *){
webView = WKWebView()
} else {
webView = UIWebView()
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句