Obteniendo la queja del compilador cuando estoy haciendo esto
class ViewController: UIViewController {
var delegate : AppDelegate
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
//self.appDelegate = UIApplication.sharedApplication().delegate;
}
@IBAction func getData(sender : AnyObject) {
}
@IBAction func LogOut(sender : AnyObject) {
}
}
Sin embargo, si solo agrego ? al final de AppDelegate como a continuación y el error se ha ido.
class ViewController: UIViewController {
var delegate : AppDelegate?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
//self.appDelegate = UIApplication.sharedApplication().delegate;
}
@IBAction func getData(sender : AnyObject) {
}
@IBAction func LogOut(sender : AnyObject) {
}
}
No veo optional
palabras clave relevantes para este error a menos que me equivoque.
fuente
Este problema generalmente aparece cuando una de sus variables no tiene valor o cuando olvida agregar "!" para forzar a esta variable a almacenar nulo hasta que se establezca.
En su caso, el problema está aquí:
Debe definirse como
var delegate: AppDelegate!
una opción que almacene nulo y no desenvuelva la variable hasta que se use el valor.Es triste que Xcode resalte a toda la clase como un error en lugar de resaltar la línea particular de código que lo causó, por lo que lleva un tiempo resolverlo.
fuente
si perdiste un "!" en su código, como este código a continuación, también obtendrá este error.
fuente
Reemplace
var appDelegate : AppDelegate?
con lolet appDelegate = UIApplication.sharedApplication().delegate
que se indica en la segunda línea comentadaviewDidLoad()
.La palabra clave "opcional" se refiere exactamente al uso de
?
, consulte esto para obtener más detalles.fuente
Uso Xcode 7 y Swift 2. Por último, hice:
class ViewController: UIViewController {var time: NSTimer // error this here}
Luego arreglo: class ViewController: UIViewController {
}
fuente
Para mí fue una declaración incompleta. Por ejemplo:
En cambio, la forma correcta:
fuente