IOSラーニングノート「このクラスはxxxのキーバリューコーディングに対応していません」問題解決
目次
このクラスは、キーのキーバリューコーディングに準拠していません。
1つ目:IBOutletの名前が変わっている、またはInteface Builderで2つ連結されている
2つ目:xibファイルのFile's Ownerに対応するClassファイルが間違っている。
このクラスは、キーのキーバリューコーディングに準拠していません。
学習の過程で、初心者のためにこの問題は確かにこのエラー"このクラスは、キー&quotのキー値のコーディング準拠ではありません発生しますが、オンラインソリューションによると、基本的に唯一の最初の2つの解決策です。
まず1つ目。IBOutletの名前が変わっていたり、Inteface Builderで2つの連結があったりします。
この可能性は高い
2つ目:xibファイルのFile's Ownerに対応するClassファイルが間違っている。
これは、ViewControllerファイルを作成する際に、xibも作成するようにチェックを入れておけば、実は問題ないのですが、以下がチェックポイントになります。
3つ目は AppDelegate
このケースは、初心者にとって最も陰湿なもので、次のようなコードスニペットから始まります。
#import "AppDelegate.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// The last step is to bind the creation of the xib file to the window interface
self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = [[UIViewController alloc]initWithNibName:@"RootViewController" bundle:nil];
[self.window makeKeyAndVisible];
return YES;
}
@end
このコードは、xibレイアウトを使用するためにストーリーボードを削除するときに修正する必要があるものですが、初心者にとっては、これが問題であることを知らないかもしれないし、問題が発生した場合、それは本当に簡単に解決できないし、ここでRootViewControllerをロードするためにUIViewController alloc]initWithNibName: はないだろうと思うでしょうか。問題はありませんが、それは問題を引き起こしている:&quot。 このクラスはキーバリューのコーディングに準拠していないため、キー これは、システムの UIViewController ではなく、RootViewController を初期化する必要があるためで、すべての ViewController のトップレベルの親となるため、コードを次のように変更するだけです。
#import "AppDelegate.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
// The last step is to bind the creation of the xib file to the window interface
self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = [[RootViewController alloc]initWithNibName:@"RootViewController" bundle:nil];
[self.window makeKeyAndVisible];
return YES;
}
@end
UIViewControllerをRootViewControllerに変更します。
関連
-
libc++abi.dylib が NSException 型の捕捉できない例外で終了する理由 エラー
-
クラッシュエラー libc++abi.dylib: NSException 型のキャッチできない例外で終了_allanGold のブログ - ProgrammerITS401
-
[iOS]コンパイルエラー:ld: アーキテクチャ x86_64 のシンボルが見つかりません。
-
[エラー処理】iOSのエラー、アーキテクチャx86_64の未定義シンボルについて
-
iOS classic error Undefined symbols for architecture XXX:
-
制御が非ボイド関数の終了に達する
-
XCode のコンパイル例外を解決する clang: error: linker command failed with exit code 1
-
dyld: ライブラリがロードされていません。エラーの解決
-
EXC_BAD_ACCESS (code=2, address=0x0)
-
IOS8 Development Guide Error Thread 1: signal SIGABRT
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例