Je ne comprends pas cette erreur. Veuillez vérifier le code ci-dessous:
class CardCarousel: UIView {
var numberOfRatesLabel: UILabel
var bestRates: BestRates! {
didSet {
numberOfRatesLabel.text = bestRates.title
}
}
override init(frame: CGRect) {
self.numberOfRatesLabel = numberOfRatesLabel
super.init(frame: frame)
initComponents()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
initComponents()
}
private func initComponents() {
numberOfRatesLabel = UILabel(frame: .zero)
self.addSubview(numberOfRatesLabel)
}
}
3 Réponses :
dans la ligne suivante:
Vous n'avez aucune déclaration locale pour Self.numberofratesLabel = NumberofratesLabel Code> P>
numéryofrateslabel code> il est donc égal à
Self.numberofratesLabel = Self.NumberofratesLabel code>
Comme il n'y a aucune raison de faire cela, Swift code> vous empêche de le faire. P>
Le problème est ici:
var numberOfRatesLabel: UILabel?
override init(frame: CGRect) {
super.init(frame: frame)
initComponents()
}
i en place les commentaires ce que je me sens mal à propos de l'initializer J'ai vérifié à ma place maintenant son fonctionnement bien espère que cela fonctionnera également pour vous aussi.
Veuillez lire attentivement les commentaires. P>
override init(frame: CGRect) {
// this is what you are doing wrong because numberOfRatesLabel class member is not came in to existance without its instance got memory
// you can comment this line if you want to assign a uilable to the numberOfRatesLabel from other class
//self.numberOfRatesLabel = numberOfRatesLabel
super.init(frame: frame)
initComponents()
}
// and still you want to initilize with constructor then you should use convenience Initilizer
convenience init(frame: CGRect, num_ofRatLabel : UILabel) {
self.init(frame: frame)
self.numberOfRatesLabel = num_ofRatLabel
}
'Self.numberofratesLabel = NumberofratesLabel'. Vous vous assignez une propriété à elle-même, qu'est-ce que vous ne comprenez pas à ce sujet?
Vous attribuez une propriété à elle-même, cela n'a pas de sens.