Recebendo a reclamação do compilador ao fazer isso
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 entanto, se eu apenas adicionar ? no final do AppDelegate, como abaixo, e o erro desapareceu.
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) {
}
}
Não vejo optional
palavras-chave relevantes para esse erro, a menos que esteja errado.
fonte
Esse problema geralmente aparece quando uma de suas variáveis não tem valor ou quando você esquece de adicionar "!" para forçar essa variável a armazenar nada até que seja definida.
No seu caso, o problema está aqui:
Deve ser definido como
var delegate: AppDelegate!
opcional, que armazena nada e não desembrulha a variável até que o valor seja usado.É triste que o Xcode destaque toda a classe como um erro, em vez de destacar a linha de código específica que a causou, por isso leva um tempo para descobrir isso.
fonte
se você perdeu um "!" no seu código, como este código abaixo, você também receberá esse erro.
fonte
Substitua
var appDelegate : AppDelegate?
porlet appDelegate = UIApplication.sharedApplication().delegate
conforme indicado na segunda linha comentadaviewDidLoad()
.A palavra-chave "opcional" refere-se exatamente ao uso de
?
, consulte isso para obter mais detalhes.fonte
Eu uso o Xcode 7 e o Swift 2. Por último, eu fiz:
classe ViewController: UIViewController {var time: NSTimer // erro isso aqui}
Então eu corrijo: class ViewController: UIViewController {
}
fonte
Para mim foi uma declaração incompleta. Por exemplo:
Em vez da maneira correta:
fonte