2017-06-08 3 views
0

Also das ist meine Situation: Ich habe eine Klasse:UIButton nil

class upgrade { 
    var buttonOutlet: UIButton? 
init(buttonOutlet: UIButton?) { 
self.buttonOutlet = buttonOutlet } 
} 

Dann habe ich ein Upgrade:

var upgrade1 = upgrade.init(buttonOutlet: nil)` 

Offensichtlich kann ich nicht die 'buttonOutlet' eingestellt auf dieser Punkt. So habe ich eine Funktion, die es für mich setzt, wenn benötigt:

func setBO() { 
upgrade1.buttonOutlet? = buttonOutletForUpgrade1 
} 

Dieses „buttonOutletForUpgrade1“ ist ein Auslass von einer Schaltfläche ich zuvor erstellt haben. Ich möchte in der Lage sein, nach dem Aufruf von 'setBO' den Titel der Schaltfläche festzulegen. Es macht jedoch nichts! Wenn ich den Code ausführe, gibt mein upgrade1.buttonOutlet nil zurück. Wie kann das sein? Habe ich es nicht richtig gemacht? Bitte erkläre! Danke!

+0

Wann rufst du 'setBO' an? –

+0

Also habe ich diese Funktion, die den Titel der Schaltfläche ändert. In dieser Funktion rufe ich zuerst setBO auf, dann ändere ich den Titel der Schaltfläche. –

Antwort

0

Ändern Sie Ihren Code wie folgt und es funktioniert. Getestet vorher und nachher und es funktioniert.

func setBO() { 
    upgrade1.buttonOutlet = buttonOutletForUpgrade1 
} 

Fügen Sie kein Fragezeichen am Ende hinzu.