次の警告が表示されますvariable 'isTaken' was written to, but never read
次のコードで:
func textFieldShouldEndEditing(textField: UITextField) -> Bool {
var isTaken: Bool = false
if textField == usernameTxt { var query = PFQuery(className: "_User")
query = PFQuery(className: "_User")
query.whereKey("username", equalTo: usernameTxt.text!)
query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) in
if error == nil {
if (objects!.count > 0){
isTaken = true
}
} else {
print("Username is available. ")
}
} else {
print("error")
}
}
}
return true
}
警告が表示されるのはなぜですか?
エラーが言うようにvariable 'isTaken' was written to, but never read
は、isTaken
インスタンスを作成し、それに値を割り当てているが、使用されていないことを意味します。
ステートメントを削除するだけです。
var isTaken: Bool = false
isTaken = true
値は、ifの定義と割り当てに使用されることはないので、ifは何も実行しません。
基本的にはisTakenに値が割り当てられていると言いますが、実際にはコードでは何もしません。これを使用したり、その値をチェックしたりすることはないため、変数が不要であるという警告にすぎません。
実際にisTakenを使用していて、コンパイラーが何らかの理由で認識しない場合は、直後に別の行を追加できます
isTaken = true;
それはただ言う
isTaken;
または、コードの他の場所で使用している場合は、isTakenをグローバルにします。
デッドコードを指摘するコンパイラ警告。おそらく、いくつかのコードをコピーして貼り付け、不要なコードをいくつか削除しました。その際、ローカル変数isTaken
の使用はなくなりました。したがって、その値が割り当てられるだけで、メリットの実現には使用されません。単にisTaken
の周りのコードを削除するか、ダブルチェックしてその周りの機能を元に戻すことができます:)。
値を設定したvarについて警告しますが、その後は操作しないでください。
コードをクリーンで安全に保つことは非常に重要です。そのため、xcodeはコードを少し手助けするだけです。
isTaken = true;
これが、値をisTaken変数に設定したポイントです。
コードを見直して、この変数の使用について考えてみてください。