2017-06-08 1 views
0

Voilà donc ma situation: j'ai une classe:UIButton renvoie nil

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

Ensuite, j'ai une mise à niveau:

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

De toute évidence, je ne peux pas régler le 'buttonOutlet' à ce point. J'ai donc une fonction qu'il définit pour moi en cas de besoin:

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

Ce « buttonOutletForUpgrade1 » est une sortie d'un bouton j'ai créé plus tôt. Je veux être en mesure de définir le titre du bouton après avoir appelé 'setBO'. Cependant, ça ne fait rien! Lorsque je lance le code, mon upgrade1.buttonOutlet renvoie zéro. Comment se peut-il? Est-ce que je ne l'ai pas réglé correctement? S'il vous plaît, expliquez! Merci!

+0

Quand appelez-vous la fonction 'setBO'? –

+0

J'ai donc cette fonction qui change le titre du bouton. Dans cette fonction, j'appelle d'abord setBO, puis je change le titre du bouton. –

Répondre

0

Modifiez votre code comme suit et cela fonctionne. Testé avant et après et ça marche.

func setBO() { 
    upgrade1.buttonOutlet = buttonOutletForUpgrade1 
} 

N'ajoutez pas de point d'interrogation à la fin.