У меня внезапно возникает странная и воспроизводимая ошибка при использовании класса @IBDesignable, свойства @IBInspectable выдают следующее предупреждение:
Main.storyboard: warning: IB Designables: Игнорирование определенного пользователем атрибута времени выполнения для ключевого пути «test» в экземпляре «UIButton». Попадание в исключительную ситуацию при попытке установить его значение: [setValue: forUndefinedKey:]: этот класс не соответствует кодированию значения ключа для ключевого теста.
Чтобы быть ясным, это предупреждение является проблемой только в Xcode, оно отлично упаковывается. Все еще раздражает!
Действия по воспроизведению
- Создать новый проект
Создайте собственный подкласс @IBDesignable UIButton со свойством @IBInspectable String:
import UIKit @IBDesignable class TempButton: UIButton { @IBInspectable var test:String = "" }
- Drag a Button to a View Controller in the storyboard, and give it the custom class "TempButton" in the Identity Inspector.
- Теперь атрибут «Test» должен появиться в инспекторе атрибутов для свойств «Temp Button» - введите что-нибудь в это поле.
- Бац! Появится указанное выше предупреждение. Удалите текст из поля, и предупреждение исчезнет.
Я пробовал несколько решений - разные имена переменных, делая свойство test необязательным, используя инициализатор, пока не повезло.
Вот снимок экрана с проблемой: