вот такой код имею на руках
—————-
@IBOutlet weak var label: UILabel!
@IBInspectable var text: String? {
get {
guard let text = label.text else { return «»}
return text
}
set(newText) {
label.text = newText // вот в этот момент падает, потому что label = nil
}
}
—————-
Как быть? Я так понимаю аутлет инициализируется после того, как сториборд присылает данные для IBInspectable
Ничего в мою голову кроме DispatchQueue.main.asyncAfter не пришло к сожалению...
Не, нельзя так делать. 1) Надо отказаться от аутлетов и inspectable 2) если никак без них, то может такой код поможет? ``` extension UILabel { @IBInspectable var text: String? { get { return self.text ?? "" } set { self.text = newValue } } } ```
тут ты зашиваешься на конкретный лейбл. И понятно что он создается позже. А в расширении у тебя все лейблы будут таким поведением обладать. И свойство увидишь в меню. Кстати, название свойства лучше поменять на что-то другое. Оно совпадает с нативным свойством самого лейбла.
Благодарю🙏
Обсуждают сегодня