[解決済み】Xcode - 'NSUnknownKeyException', reason: ... this class is not key value coding-compliant for the key X" エラーの修正方法とは?
質問内容
をリンクさせようとしています。
UILabel
と
IBOutlet
私のクラスで作成したものです。
私のアプリケーションは、次のようなエラーでクラッシュしています。
これはどういうことでしょうか?
どうすれば直るのですか?
<ブロッククオート*** キャッチできない例外 'NSUnknownKeyException', reason: '[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for key XXX.' によりアプリを終了する。
解決方法は?
ビューコントローラーのクラスが、xibの中で間違っている可能性があります。
プロジェクトをダウンロードしました。
あなたが得ているエラーは
'NSUnknownKeyException', reason: '[<UIViewController 0x3927310> setValue:forUndefinedKey:]: このクラスはキー文字列に対してキーバリューコーディングに準拠していません'.
によって引き起こされます。
Second
ビューコントローラを
MainWindow.xib
のクラスを持つ
UIViewController
ではなく
SecondView
. 正しいクラスに変更すると、問題は解決します。
ちなみに、Objective-Cで"string"のような名前をつけるのはバッドプラクティスです。ランタイムの命名衝突を招きます。たとえ一度限りの練習用アプリであっても、避けるようにしましょう。ネーミングの衝突を追跡するのは非常に困難で、時間を無駄にしたくありません。
このエラーのもう1つの考えられる理由は、あるコントローラから別のコントローラに要素をコピー&ペーストする際に、Xcodeが何らかの形で元のコントローラへのリンクを保持し、その要素を新しいコントローラに編集&再リンクした後でも、そのリンクが保持されることです。
このエラーのもう一つの可能な理由。
アウトレットが悪い。
あなたはどちらかを持っています。
削除
または
リネーム
でアウトレット名を指定します。
.h
ファイルを作成します。
で削除します。
.xib
または
.storyboard
ファイルのコネクションインスペクタを表示します。
もう一つ考えられる理由
(私の場合) バインド可能なプロパティを持つUIViewを拡張し、それらのバインド可能なプロパティ(すなわち、影、角の半径など)に値を設定した後、UIView拡張からそれらのプロパティを削除しますが、(何らかの理由で) 次のようなことが起こります。
<userDefinedRuntimeAttributes>
はxmlに残っています。
foo.storyboard
):
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="color" keyPath="shadowColor">
<color key="value" white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="shadowOpacity">
<real key="value" value="50"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="point" keyPath="shadowOffset">
<point key="value" x="5" y="5"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="shadowRadius">
<real key="value" value="16"/>
</userDefinedRuntimeAttribute>
<userDefinedRuntimeAttribute type="number" keyPath="borderWidthValue">
<real key="value" value="0.0"/>
</userDefinedRuntimeAttribute>
</userDefinedRuntimeAttributes>
解決策
を右クリックしてください。
foo.storyboard
ソースコードとして開く > keyPathで検索(例:shadowRadius) > 削除する。
</userDefinedRuntimeAttributes>
問題の原因となる
関連
-
[解決済み】arm64アーキテクチャの未定義シンボルについて
-
[解決済み] ペン先を読み込んだが、「表示」コンセントが設定されていない
-
[解決済み] シミュレーターiOS 13でダークモードを使用するには?
-
[解決済み] エラーです。cocoapodsでRestKitをインストール後、「サンドボックスがPodfile.lockと同期していない...」と表示される
-
[解決済み] データソースからのセルの取得に失敗しました。
-
[解決済み] #ifdef DEBUG 対 #if DEBUG
-
[解決済み] Xcode 4のBundle creator OS Type code ?
-
[解決済み] UILabelにスペース/パディングを追加する
-
[解決済み] あなたのリクエストはエラーを発生させました。[newNullResponse]?
-
[解決済み] 'CGPointMake' は swift で使用できません [重複] 。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】リンカーコマンドが終了コード1で失敗(起動を確認するには-vを使用)、Xcode 8、Swift 3
-
[解決済み】印刷します。エントリ, ":CFBundleIdentifier", Does Not Exist
-
[解決済み】"宣言はファイルスコープでのみ有効 "について
-
[解決済み】iOS 9.0より前のUIStackView
-
[解決済み] リンカーコマンドが終了コード 1 で失敗した(起動を確認するには -v を使用)、Xcode 8、Swift 3
-
[解決済み] キャッチできない例外 'NSUnknownKeyException' によりアプリが終了する [重複] 。
-
[解決済み] selector' の引数が '@objc' メソッド、プロパティ、またはイニシャライザを参照していない
-
[解決済み] UIViewController viewDidLoad vs. viewWillAppear。適切な役割分担とは?
-
[解決済み] Stringをformatで作成するには?
-
[解決済み] 条件付きバインディング:letエラーの場合 - 条件付きバインディングのイニシャライザーはOptional型でなければならない