2016-12-19 1 views
-2

だから私はいくつかのこのようなコードがあります。私が使用しているスウィフト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値を宣言することはできません。少なくとも、これを行う方法は見つけられていません。

これは単なる警告ですが、自分のコードで警告が嫌いです。これはどうですか?

+1

「associatedEnumValueで処理する」場合、「 'associatedEnumValue' never used」という警告が表示されるのはなぜですか? - 自己完結型のコンパイル例を投稿できますか? –

+0

関連する値が必要ない場合は、 'case .enumStateOne:'にマッチするだけです。それ以外の場合は、(私が何かを見落とさない限り)警告を受け取るべきではありません。 –

+1

もし 'if let nextEnumToSwitchOn = funcToGetEnum()'がコンパイルされていなくても、それに続く一致するブロックはありません。 [最小限で完全で検証可能なサンプルを作成する方法](http://stackoverflow.com/help/mcve)を読んだ後、質問の更新を検討してください。そのようなMCVEの作成の進展では、あなた自身の疑問に答えることさえ疑うでしょう(これは、最小限の、完全な例と検証可能な例を作成する別の理由です)。 – dfri

答えて

0

これは、Xcodeのエラー/問題です。

私のプロジェクトを掃除してXcodeを何度もやり直し、警告が持続すると、私は何か不足していると思ってここに質問を掲示しました。

変数が任意のコードパスで使用されている場合は、警告が表示されていないことを確認した後、コードを変更して変更を取り消し、プロジェクトをクリーンアップし、Xcodeを再起動しました。

関連する問題