9

@IBDesignable クラスを使用しているときに、奇妙な再現可能なエラーが突然発生しました。@IBInspectable プロパティは次の警告を出しています。

Main.storyboard: 警告: IB Designables: "UIButton" のインスタンスのキー パス "test" に対するユーザー定義のランタイム属性を無視します。値を設定しようとすると例外が発生します: [ setValue:forUndefinedKey:]: このクラスは、キー テストのキー値コーディングに準拠していません。

明確にするために、この警告は Xcode のみの問題であり、問​​題なくパッケージ化されています。それでも迷惑!

再現する手順

  1. 新しいプロジェクトを作成
  2. @IBInspectable String プロパティを使用して、カスタム @IBDesignable UIButton サブクラスを作成します。

    import UIKit
    
    @IBDesignable
    class TempButton: UIButton {
        @IBInspectable var test:String = ""
    }
    
    1. Button をストーリーボードの View Controller にドラッグし、Identity Inspector でカスタム クラス "TempButton" を指定します。
    2. これで、「Temp Button」プロパティの属性インスペクターに「Test」属性が表示されます。このフィールドに何かを入力します。
    3. バム!上記の警告が表示されます。フィールドからテキストを削除すると、警告が消えます。

私はいくつかの解決策を試しました-異なる変数名、「テスト」プロパティをオプションにする、初期化子を使用する、これまでのところ運がありません。

問題のスクリーン キャプチャを次に示します。

ここに画像の説明を入力

4

4 に答える 4

8

私は同じ問題に直面し、それを解決しました。ストーリーボードを開いている間:上部メニューの [エディター] を1-クリックします。[すべてのビューを更新] を 2 回クリックします。3-アプリケーションを再起動します。4-ビルド。

于 2016-11-25T08:03:58.443 に答える