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?