だから私はいくつかのこのようなコードがあります。私が使用しているスウィフト3しかしスウィフト3 switch文での警告「を使用していませんでした不変の価値 『variableNameに』の初期化」を回避
fileprivate func enumSwitchTime(_ optionalString: String?) {
if let nextEnumToSwitchOn = funcToGetEnum()
switch nextEnumToSwitchOn {
case .enumStateOne(let associatedEnumValue):
if let optionalString = optionalString {
//do stuff with both associatedEnumValue and optionalString
}
case .enumStateTwo...
.
.
.
}
}
を( Xcode 8.1) "最初のケースでは、"不変の値の初期化 "associatedEnumValue 'は使用されませんでした..."という警告が表示されています。
私はまだスウィフトで自分のつま先を濡らしていますが、今のところ私はこれを回避する方法はありません。 case文でunderscoreパラメータを実行してから、後でlet optionalString = optionalStringの後に関連するenum値を宣言することはできません。少なくとも、これを行う方法は見つけられていません。
これは単なる警告ですが、自分のコードで警告が嫌いです。これはどうですか?
「associatedEnumValueで処理する」場合、「 'associatedEnumValue' never used」という警告が表示されるのはなぜですか? - 自己完結型のコンパイル例を投稿できますか? –
関連する値が必要ない場合は、 'case .enumStateOne:'にマッチするだけです。それ以外の場合は、(私が何かを見落とさない限り)警告を受け取るべきではありません。 –
もし 'if let nextEnumToSwitchOn = funcToGetEnum()'がコンパイルされていなくても、それに続く一致するブロックはありません。 [最小限で完全で検証可能なサンプルを作成する方法](http://stackoverflow.com/help/mcve)を読んだ後、質問の更新を検討してください。そのようなMCVEの作成の進展では、あなた自身の疑問に答えることさえ疑うでしょう(これは、最小限の、完全な例と検証可能な例を作成する別の理由です)。 – dfri