2016-05-21 27 views
0

ifステートメント内でvarを変更しようとしていますが、何らかの理由で変更ができません。ifステートメント内の変数を変更する方法

+1

あなたは 'textfieldStatus = ...'を使用して行にブレークポイントを使用してこのコードを実行するとどうなりますか?私はそこにブレークポイントを置くとき – bneely

+0

は@bneely私はこの値\t文字列\t "" \t _core \t _StringCore \t _baseAddress \t COpaquePointer \t 0x000000010be0f328 "" _countAndFlags \t UINT _owner \t ANYOBJECTを取得しますか? \t nil \tなし – pprevalon

+1

私は、そこにブレークポイントを設定し、実行がそのポイントに達した理由を見つけ出し、結果があなたの望むものであることを確認しています。基本的には、デバッガを使用してコードの正確性を保証してください。 – bneely

答えて

0

このソリューションの作品はよく私に形成

func checkIfFieldsEmpty()-> Bool{ 
var v = [ 
     "name":"" 
     ] 

     var textfieldStatus:Bool = true 
     var fielderrorCount:Int = 0 


     for (key, value) in v{ 

      if value == ""{ 
       fielderrorCount = 1 
      } 
     } 


     if fielderrorCount > 0{ 
      textfieldStatus = false 

     } 

     return textfieldStatus 

    } 
0

これは常にfalseを返します。値が完全に空であるかどうかを確認する場合は、これが必要だと思います。

for (key, value) in textfield { 
    if value == "" { 
     textfieldStatus = false 
    }else{ 
     textfieldStatus = true 
     break 
    } 
} 
+0

あなたのコードと元のメッセージの違いは何ですか? – pprevalon

+0

私は関数のテキストフィールドをテストしていないと言っているものを見ています。私がテストしていたv – pprevalon

+0

だから私は正しいのですか? – fridgemagnet

0

@fridgemagnetの答えによると、違いはDictionaryパラメータが必要なメソッドを呼び出すことです。しかし、あなたは常に

するvar V = [「名前」:「」]に設定されている

をそして、あなたは変数をチェックしている「textfieldStatus V」あなたは常にfalseを返す必要があります値を、デフォルトで」 "値はfalseです。したがって、あなたの "textfieldStatus"値を変更する機会はありません。正確に何を望んでいるかを確認してください。

0

vを空として定義し、空であるかどうかを確認します。試してくださいv = ["name": "peter"](しかし、それは本当にあなたが望むものではない)。 var v = ...を宣言すると、前の値がvになっていれば、プログラムで前に定義されています。

関連する問題