2015-09-17 7 views
9

Im erhalte die folgende Warnung variable 'isTaken' was written to, but never read auf den folgenden Code:Variable wurde geschrieben, aber nie gelesen?

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 
    } 

warum bin ich die Warnung erhalten und wie kann ich tun, weg mit ihm?

+0

Verwenden Sie 'isTaken' global, wenn Sie es wirklich brauchen, sonst scheint' 'take'' nicht zu verwenden –

Antwort

11

Wie der Fehler sagt variable 'isTaken' was written to, but never read bedeutet, dass Sie isTaken Instanz erstellen und einen Wert zuweisen, aber es nie verwendet.

3

beseitigen Sie die Anweisungen:

var isTaken: Bool = false 
isTaken = true 

Da der Wert nie verwendet wird, zu definieren und zuweisen, wenn nichts erreicht.

3

Im Grunde heißt es, dass isTaken einen Wert zugewiesen hat, aber es tut nichts in Ihrem Code. Sie verwenden es nie oder überprüfen seinen Wert, daher ist es einfach eine Warnung, die besagt, dass die Variable nicht benötigt wird.

Wenn Sie tatsächlich isTaken verwenden und der Compiler aus irgendeinem Grund nicht erkennen, könnten Sie wahrscheinlich fügen Sie einfach eine andere Linie direkt nach

isTaken = true; 

die

isTaken; 

nur sagt Oder machen isTaken global, wenn Sie woanders im Code verwenden.

2

Es ist eine Compiler-Warnung, um auf einen toten Code hinzuweisen. Sie haben wahrscheinlich eine Kopie eingefügt und etwas unerwünschten Code entfernt. Die lokale Variable isTaken ist damit nicht mehr vorhanden. Es wird also nur ein Wert zugewiesen und niemals für die Realisierung irgendwelcher Vorteile verwendet. Sie können entweder einfach den Code um isTaken entfernen oder die Funktionalität überprüfen und zurücksetzen :).

0

Es warnt Sie vor einer Var, die Sie einen Wert festlegen, aber nicht darüber hinaus arbeiten.

Es ist sehr wichtig, halten Sie Ihren Code sauber und sicher, so dass der xcode nur ein wenig Hilfe dabei gibt.

isTaken = true; 

Das ist der Punkt, legen Sie Wert auf isTaken variabel.

Versuchen Sie, Ihren Code zu überprüfen und über die Verwendung dieser Variablen nachzudenken.

Verwandte Themen