1

静的ライブラリのコードを介して、CFBundle から XIB をロードしたいと考えています。

例:

MyViewController * foo = [[Static Library] instance] getMyViewController];

したがって、手動で作成した CFBundle に MyViewController .xib があり、Resources dir にあります。

しかし、getMyViewController で [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:MyBundlePointer] を介してロードしようとすると、NSInternalInconsistencyException が発生します。

何か案が?私は多かれ少なかれこれに困惑しています。これを行うことさえ可能かどうかはわかりません。

4

2 に答える 2

0

私は現在、Monotouch でまったく同じ問題を抱えているため、あなたの質問を見つけました。私はあなたとまったく同じ例外を受け取ります。これは、Monotouch の問題ではなく、XIB/Cocoatouch の基本的な (誤った) 動作に直面していると思います。

したがって、答えは次のとおりです。いいえ、それは不可能です。とても悲しいですが。

レネ

于 2011-01-30T21:37:58.743 に答える
0

これは特定の問題ではないかもしれませんが、問題になる可能性があります。

CFBundle は、NSBundle と無料でブリッジされていません。説明でCFBundleという用語を使用したため、NSBundleではなくCFBundleを渡しているのではないかと思います。

これらは 2 つの異なるタイプであり、CF/NS-String、Array、Data などでできるように CFBundleRef を NSBundle としてキャストすることはできないため、明示的に NSBundle インスタンスを作成する必要があります。

于 2011-01-30T22:23:37.803 に答える