2016-12-26 7 views
0

私はカスタムフレームワークを行い、このリソースをtutorialでバンドルします。IBOutletまたはIBActionに接続したときに、私のストーリーボードがカスタムバンドルリソースから機能しないのはなぜですか?

バンドルリソースにはストーリーボード(内部のViewController)とイメージがあります。

私がIBOutletまたはIBActionを接続すると、ViewControllerが表示されてクラッシュします。 UIオブジェクトの接続がすべて正常であると確信しています。

xibを使用しようとしましたが、それは完全に機能しました。ここで

エラーログ:

Unknown class TestViewController in Interface Builder file.

ここで私は、バンドルのリソースのstroyboardからのViewController提示のコードは次のとおりです。

* Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key goButton.' * First throw call stack: (0x244a391b 0x23c3ee17 0x244a3629 0x24c171f3 0x28d828b7 0x24c296d3 0x28ed3e9b 0x243ed1cb 0x28ed2bd1 0x28d85aa3 0x28b58ffb 0x28a1ea1f 0x28a1e971 0x292b3ec1 0x28d6ad01 0x28d8e6e5 0x28d90d25 0x28d90f91 0x28b17db9 0xd0b5 0x28a3714b 0x28aa7193 0x28aa7129 0x28cc75b1 0x28cd37db 0x24465d21 0x244657dd 0x24463d51 0x243b3229 0x243b3015 0x259a3ac9 0x28a87189 0xd2ed 0x2405b873) libc++abi.dylib: terminating with uncaught exception of type NSException

エラーの前に警告があります。この文から

NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"XXXSDK" ofType:@"bundle"]; 
NSBundle *resourcesBundle = [NSBundle bundleWithPath:bundlePath]; 

UIStoryboard *resourcesStoryboard = [UIStoryboard storyboardWithName:@"Resources" bundle:resourcesBundle]; 
TestViewController *testVC = [resourcesStoryboard instantiateViewControllerWithIdentifier:@"TestViewController"]; 

[self presentViewController:testVC animated:YES completion:nil]; 

答えて

3

: "x" の小さなと "メイン..." 灰色のウィンドウのいずれかを削除し

Unknown class TestViewController in Interface Builder file.

二つの可能性があります。

は、
  1. NIB /ストーリーボードViewControllerにクラスを指定していないようです。問題を確認してください。
  2. TestViewController.hTestViewController.mファイルがプロジェクトに追加されています。しかし、何らかの形でファイルがFinderから削除されることがあります。
    もしそうならば、あなたのプロジェクトのxCodeのProjectNavigatorで両方のファイルをREDテキストカラーで見ることができます。つまり、ファイルコンパイラにはプロジェクトに追加されていないことが予想されます。

あなたは2番目のシナリオに直面していることを発見した場合さて、ゴミ箱に移動してファイルを選択し、右バック入れをクリックして選択します。
xCodeプロジェクトに移動して、プロジェクト名を右クリックし、を「プロジェクト名」に追加しますを選択します。
これがあなたの問題を解決することを願っています。

+0

1. TestViewController.hと.mがフレームワークにパッケージされていることを確信しています。 – ovo

+0

お返事ありがとうございます – ovo

+0

解決方法を試すことができますhttp://stackoverflow.com/questions/1725881/unknown-class-myclass-in-interface-builder-file-error-at-runtime/1725893#1725893 –

0

このクラスは、キー値コーディング準拠のキーgoButtonについては、お使いのgoButtonが正しくクラスであることを確認してくださいではありません。あなたのストーリーボードのView Controllerが正しいクラスを持っているかどうかチェックしてください。

xibに接続不良がある可能性があります。

私は何度もこのエラーが発生しました。別の一般的な原因は、あなたがすでにペン先のFile's Ownerに接続している.h/.mのIBOutletプロパティの名前を変更したときです。あなたのペン先から

はIBでオブジェクトを選択し、「接続インスペクタ」に行きます。 'アウトレットの参照'で、オブジェクトが古いプロパティ名にまだ接続されていないことを確認してください。そうであれば小さな 'x'をクリックして参照を削除し、再度ビルドします。

enter image description here

別の一般的な原因あなたはストーリーボードを使用している場合は、あなたのUIButtonはもっとして1 assignings(ソリューションは、ほぼペン先と同じである)かもしれません:

は、ストーリーボードを開き、右UIButton をクリックしてくださいこのボタンに複数のassign/refがあることがわかります。あなたが得た警告に関して

enter image description here

+0

ご返信ありがとうございますが、すべてが問題ないことをすべて確認しました。 – ovo

1

@Er。ビハールの返事。

フラグをOther Linker Flagsに追加することで、私の問題を解決しました。

関連する問題