2011-01-28 20 views
1

私はin this threadで説明したような問題を抱えていますが、彼に提供された解決策は私のために働いていません。私は長い記述についてお詫びしますが、これは私の最初の投稿であり、私は完全でありたいです。問題iPhoneのプログラムで最初のNibを読み込む

私はシミュレータでうまく動作するプログラムを持っています。しかし、私はデバイスにプッシュアウトしようとすると、私はこれを言うエラーが出る:

だから、
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </var/mobile/Applications/....app> (loaded)' with name 'MainWindow'' 

:XIBをロードしようとしているがメインウィンドウと呼ばれるが、それはそれを見つけることができません。 MainWindowと呼ばれるXIBがないためです。最初のXIB IロードはFrontPage.xibと呼ばれます。私はテンプレートの1つを使ってこのプログラムを起動しなかったので、最初にMainWindow.xibファイルは提供されませんでした。

Googleマシンは、メインのnibファイルのベース名をアプリのplistで変更できることを伝えます。だから私はそこに行き、私はそれをFrontPageに変更する。誰もが解決策を知っている - 私はここの上に私の髪を引っ張ってる

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIApplication 0x12c270> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key view.' 

:今、私は別のエラーを取得しますか?

+0

Interface Builder経由でnibファイルに 'view'アウトレットセットを設定したようですが、File's Ownerには 'view'という名前のインスタンス変数/宣言プロパティがありません。 –

+0

はFrontPage.xibで、コントローラペンは何ですか? – Seyther

+0

Bavarious:はい、Interface Builderでは、「File's Owner」に「View」という名前のビューのコンセントがあります。私はコードのどこにでもこれをプロパティとして宣言していません - 私は必要ですか? これは、私のiOSプログラミングに対する私の経験が明白なところです。 :) – Kyle

答えて

1

Frontpage.xibがアプリケーションのメインxibになる場合は、アプリケーションをロードできるように、そのxibにWindowオブジェクトとApp Delegateオブジェクトを作成する必要があります。 View Controllerなどのプレゼンテーションを開始する前に、アプリとウィンドウを設定するか、説明どおりにクラッシュします。私はウィンドウベースのテンプレートを使って新しいプロジェクトを作成し、自動的に作成されたMainWindow.xibを見て、あなたのFrontpage.xibで模倣しようとします。

..私はちょうど誠実に提案するプロジェクトでMainWindow.sibを使用し、Frontpage.xibを通常のView Controller xibにします。プロジェクトに新しいファイルを追加する場合は、[ユーザーインターフェイス]を選択し、[xibの表示]の代わりに[アプリケーションxib]を選択すると、必要なものに近いものが設定されます。

プロジェクトテンプレートは重要で有用です。あなたはいつもそれらを使うべきです。私はすべての私のウィンドウベースのテンプレートを開始します。それは最も基本的なテンプレートであり、最も柔軟性があります。

+0

これはそれでした。おかげさまで、ケニーのレッスンでは、アプリテンプレートを使い始めることについて学びました。 – Kyle

0

IBからファイル所有者プロパティを設定することにより、FrontPage.xibのビューコントローラが適切に設定されている場合は、ビュープロパティも設定する必要があります。これを行うには、Fileownerからビューにドラッグ・コントロールします。このエラーから、ビューのビュープロパティをまだ設定していないように見えます。 Interface builderでnibを開き、接続インスペクタでView Connectionを探します。これはファイル所有者のビューアウトレットに接続する必要があります。どこでもプロパティとして宣言する必要はありません。

2

ビューがInterface Builderの「表示」コンセントに接続されていることを確認してください。 IBで "File's Owner"を右クリックしてViewへの "View"アウトレットにドラッグすることでこれを行います。ここに私が取り組んでいるゲームからのイラストがあります。右側の点から「ビュー」にドラッグされた青い線に注目してください。

enter image description here

を確認したいでしょうもう一つは、あなたのInfo.plistです。 nibファイルを呼び出すことを確認してくださいFrontPageではなく、* FrontPage ****。nib ***。

+0

Hm。私はこれがなぜ私が持っているエラーを解決するのか理解することができます - しかし、混乱させることは、ビューとファイルの所有者がすでに上記のプロセスを介して正しく接続されていることです。そしてplistの中のnibファイルには接尾辞がありません。 もう1つの奇妙なことは、私がメインのペン先ベースとしてロードしようとするまで、私はこのエラーを受け取らないということです - シミュレータでは、(存在しない)MainWindowをベースペン先、FrontPage.xibうまくロードされます。どこかに置く必要があるベースペン先に特別なものがありますか?それは特別なファイルタイプなのでしょうか? – Kyle

+0

私はそうは思わない。最後に、あなたが代理人の中でペン先をロードする場所を確認してください。再度、適切な名前が拡張子なしで設定されていることを確認します。 – Moshe

関連する問題