#ios #swift
Вопрос:
У меня есть эта пользовательская метка, которую я использую в своем приложении, но когда я запускаю свое приложение на устройствах ios 12, оно вылетает с этой ошибкой NSUnknownKeyException', reason: '[lt;EFontRegular 0x10999e050gt; setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key boldColor
, но отлично работает в ios 13 и выше. Любая помощь будет оценена по достоинству. Все остальные решения в Интернете не работали для меня
@IBDesignable final class EFontRegular: BaseUILabel { override var fontType: UIFont? { return UIFont(name: EFontConstant.Name.regular.rawValue, size: fontSize) } }
@IBDesignable class BaseUILabel: UILabel { @IBInspectable var fontSize: CGFloat { return self.font.pointSize } @IBInspectable var fontType: UIFont? { return UIFont(name: EFontConstant.Name.regular.rawValue, size: EFontConstant.Size.regular.rawValue) } @IBInspectable var stringToColor: String = "" { didSet { let alignment: NSTextAlignment = alignCenter ? .center : .left attributedText = text?.lineSpacedWithInlineColor(lineSpacing, alignment, stringToColor: stringToColor) } } @IBInspectable var boldColor: UIColor { traitCollection.userInterfaceStyle == .light ? .black : .white } @IBInspectable var stringToBold: String = "" { didSet { let alignment: NSTextAlignment = alignCenter ? .center : .left attributedText = text?.lineSpacedWithInlineColor(lineSpacing, alignment, stringToColor: stringToBold, color: boldColor, bold: true, boldTextSize: fontSize) } } override init(frame: CGRect) { super.init(frame: frame) commonInit() } required init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) commonInit() } override func prepareForInterfaceBuilder() { super.prepareForInterfaceBuilder() commonInit() } }
Комментарии:
1. «этот класс не соответствует кодированию значения ключа для ключа ___» ошибки часто возникают, когда у вас есть раскадровка со ссылкой на свойство, которое не существует в классе, на который оно ссылается. Я предлагаю поискать в ваших файлах раскадровки вхождения «жирного цвета».
2. Сделав это, классы с выделенным жирным цветом даже не имеют прикрепленных к ним раскадровок. Кроме того, он работает для ios 13 и выше