保持兩種類型之一在一個子類UIViewController
需要聲明一個稱爲webView
變量可以是UIWebView
類型或WKWebView
(取決於IOS版本)的。變量(枚舉?)在夫特2
是否有更好的方法來做到這一點(可能使用枚舉?)不是的其中一個選項:
- 聲明
UIView
類型的變量,然後有條件鑄造兩種每次我需要時間訪問它 - 不聲明共同父級
UIViewController
超類中的變量,但在兩個特定的UIViewController
子類中聲明特定類型的變量兩次?感覺它違反了「不要重複自己」/ DRY原則。
我目前無法測試它,但怎麼樣'#如果OS(watchOS)typealias MyWebView = WKWebView的#else typealias MyWebView =#UIWebView的endif'( 「構建配置語句」)? –
我喜歡這個方法,但不幸的是我需要一個* runtime *解決方案,'#if'和'typealias'似乎是編譯時功能,因此在運行時不可用。除非我誤解了某些東西? –
是的,這是在編譯時評估的。其實我昨天在電話上看到你的問題時,我誤解了這個問題。我以爲你想分享iOS和WatchOS應用程序之間的代碼,這在我的身邊非常愚蠢。 –