@IBDesignable クラスを使用しているときに、奇妙な再現可能なエラーが突然発生しました。@IBInspectable プロパティは次の警告を出しています。
Main.storyboard: 警告: IB Designables: "UIButton" のインスタンスのキー パス "test" に対するユーザー定義のランタイム属性を無視します。値を設定しようとすると例外が発生します: [ setValue:forUndefinedKey:]: このクラスは、キー テストのキー値コーディングに準拠していません。
明確にするために、この警告は Xcode のみの問題であり、問題なくパッケージ化されています。それでも迷惑!
再現する手順
- 新しいプロジェクトを作成
@IBInspectable String プロパティを使用して、カスタム @IBDesignable UIButton サブクラスを作成します。
import UIKit @IBDesignable class TempButton: UIButton { @IBInspectable var test:String = "" }
- Button をストーリーボードの View Controller にドラッグし、Identity Inspector でカスタム クラス "TempButton" を指定します。
- これで、「Temp Button」プロパティの属性インスペクターに「Test」属性が表示されます。このフィールドに何かを入力します。
- バム!上記の警告が表示されます。フィールドからテキストを削除すると、警告が消えます。
私はいくつかの解決策を試しました-異なる変数名、「テスト」プロパティをオプションにする、初期化子を使用する、これまでのところ運がありません。
問題のスクリーン キャプチャを次に示します。