Default parameter values error: "Instanzmitglied kann nicht auf Typ viewcontroller verwendet werden"

In meinem View Controller:

class FoodAddViewController: UIViewController, UIPickerViewDataSource, UITextFieldDelegate, UIPickerViewDelegate {

    let TAG = "FoodAddViewController"

    // Retreive the managedObjectContext from AppDelegate
    let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext

    @IBOutlet weak var foodName: UITextField!

    @IBOutlet weak var foodPortion: UITextField!

    @IBOutlet weak var foodCalories: UITextField!

    @IBOutlet weak var foodUnit: UILabel!

    @IBOutlet weak var unitPicker: UIPickerView!

    @IBOutlet weak var unitPickerViewContainer: UIVisualEffectView!

    /*
        unrelated code has been ommited
    */
    func validateAllTextFields(textFields: [UITextField] = [foodName as UITextField, foodPortion, foodCalories]) -> Bool {

        var result = true
        for textField in textFields {
            result = validateTextField(textField) && result
        }
        return result
    }

    func validateTextField(textField: UITextField) -> Bool{
        let correctColor = UIColor.redColor().CGColor, normalColor = UIColor.blackColor().CGColor
        var correct = true

        if textField == foodPortion || textField == foodCalories{
            if !Misc.isInteger(textField.text!){
                correct = false
            }
        }
        if textField.text!.isEmpty {
            correct = false
        }

        textField.layer.borderColor = correct ? normalColor : correctColor

        return correct
    }
}

Ich habe ein paar Textfelder, und in meinem validateTextField kann jeweils eines nach dem anderen überprüft werden, und ich möchte, dass mein validateAllTextFields in der Lage ist, eine angegebene Liste von Textfeldern zu überprüfen, indem sie einzeln überprüft werden. Wenn die Liste nicht angegeben ist, möchte ich überprüfen Eine vorgegebene Standardliste, die alle drei Textfelder enthält.

Der Code, den ich mir so vorstelle:

func validateAllTextFields(textFields: [UITextField] = [foodName as UITextField, foodPortion, foodCalories]) -> Bool {

    var result = true
    for textField in textFields {
        result = validateTextField(textField) && result
    }
    return result
}

Xcode gibt jedoch einen Fehler zurück:

instance member kann nicht für den Typ viewcontroller verwendet werden

Was ist die Ursache und wie kann man das beheben?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage