iOS/Swift: ne Peut pas affecter Chaîne facultative pour UILabel propriété text
UILabel a un texte de propriété, qui est une Chaîne facultative, mais elle semble se comporter comme un implicitement déballé en option. Pourquoi ne puis-je pas l'attribuer à une autre Chaîne facultative? Merci.
@IBOutlet weak var tweetContent: UILabel!
...
var unopt: String = "foo"
var opt: String? = "bar"
var opt2: String?
opt2 = opt //Works fine
cell.tweetContent.text? = unopt //Works fine
cell.tweetContent.text? = opt //Compile error: Value of optional type 'String?' not unwrapped
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas besoin de déballer
text
.Laissant
text
comme unString?
(akaOptional<String>
)Où, comme déballage
text
tourneString?
dans unString
.Mise à JOUR
Peut-être être un peu plus d'explication ici.
text?
est pire que ce que je pensais et ne doit pas être utilisé.Pense
text = value
ettext? = value
en fonctionsetText
.text =
a la signaturefunc setText(value: String?)
. Rappelez-vous,String?
estOptional<String>
. En outre, il est toujours appelé, peu importe la valeur actuelle detext
.text? =
a la signaturefunc setText(value: String)
. Là est le hic, c'est que lorsquetext
a une valeur.