ビューコントローラーのxibに間違ったクラスがある可能性があります。
プロジェクトをダウンロードしました。
あなたが得ているエラーは
'NSUnknownKeyException'、理由: '[<UIViewController 0x3927310> setValue:forUndefinedKey:]:このクラスは、キー文字列のコーディングに準拠したキー値ではありません。
の代わりにのクラスを持つSecond
ビューコントローラーが原因です。正しいクラスに変更すると、問題が解決します。MainWindow.xib
UIViewController
SecondView
ちなみに、Objective-Cで「string」のような名前を付けるのは悪い習慣です。実行時の名前の衝突が発生します。一度限りの練習アプリでもそれらを避けてください。衝突の命名は追跡が非常に難しく、時間を無駄にしたくない場合があります。
このエラーの別の考えられる理由:あるコントローラーから別のコントローラーに要素をコピーして貼り付ける場合、この要素を編集して新しいコントローラーに再リンクした後でも、Xcodeは何らかの形でそのリンクを元のコントローラーに保持します。
このエラーの別の考えられる理由:
悪いコンセント。
あなたはどちらかいる削除または名前を変更し、あなたにコンセントの名前を.h
ファイル。
ファイル.xib
または.storyboard
ファイルの接続インスペクタで削除してください。
もう1つの考えられる理由
(私の場合)バインド可能なプロパティとそれらのバインド可能なプロパティの値を設定した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>
問題の原因となっているものを削除