マット・スウィフト:
私が使用するたびにswitch-case
10のうち9回- -文を最後のdefault
ケースは、ほとんどの場合、それ以上の例ということです。
すなわち。
// WebView Observers
switch webView {
case webView:
webViewURLObserver = webView.observe(\.url, options: .new) { [weak self] webView, change in
let url = "\(String(describing: change.newValue))"
self?.urlDidChange(urlString: url) }
case customizerWebView:
customizerURLObserver = customizerWebView.observe(\.url, options: .new) { [weak self] webView, change in
let url = "\(String(describing: change.newValue))"
self?.customizerURLDidChange(urlString: url) }
case default:
webViewURLObserver = webView.observe(\.url, options: .new) { [weak self] webView, change in
let url = "\(String(describing: change.newValue))"
self?.urlDidChange(urlString: url) }
}
持ってする方法があるdefault
場合にだけ、既存例1を参照するには?
// What I'm trying to accomplish
switch webView {
case webView:
[webView Observer Code]
...
case customizerWebView:
[customizerWebView Observer Code]
...
case default:
switch.case = webView || switch.case = 0
}
涙:
可能な解決策は、使用することですフォールスルー。
代わりに、思考の:
「デフォルト」の場合:対象の例何かをします
他の方法でそれを考えます:
ターゲットとなるケースの場合は、「デフォルト」を行います。
switch webView {
case customizerWebView:
customizerURLObserver = customizerWebView.observe(\.url, options: .new) { [weak self] webView, change in
let url = "\(String(describing: change.newValue))"
self?.customizerURLDidChange(urlString: url) }
case webView:
fallthrough
case default:
webViewURLObserver = webView.observe(\.url, options: .new) { [weak self] webView, change in
let url = "\(String(describing: change.newValue))"
self?.urlDidChange(urlString: url) }
}
指摘、ようや@xTwiteDx、あなたは行を削除することができますcase webView: fallthrough
あなたが前に特定のコードを実行しない場合fallthrough
。それはどのように明示的またはない場合に、あなたはあなたのコードに慣れているか、あなた次第です。