3

私はiPhone用のアプリを完成させました。これは今日まで、iPhoneシミュレーターと実際のデバイスで正常に動作していました。

アプリケーションデリゲートクラスのapplicationDidFinishLaunchingメソッドにロードされているxibを変更しようとしました。実行したのは、initWithNibNameの文字列を変更することだけでした。

シミュレーターでアプリを起動すると、Default.png画像が表示され、キャッチされない例外が発生してアプリがクラッシュします。デバイスで実行すると、Default.png画像が約10秒間表示され、UIが読み込まれることはなく、「GDB:プログラム受信信号:「SIGABRT」」が表示されます。Xcodeステータスバー。デバッグでは、アプリがクラッシュする前にapplicationDidFinishLaunchingに実際に到達することはありません。

開始xibを元に戻すと問題は解決しますが、変更を加えてInterface Builderに保存すると、アプリに上記と同じ問題が表示されます。コードをまったく変更していません。

これはメモリの問題ですか、それともよくある間違いの既知の問題ですか?

注:コードの変更は一切行っていません。xibに加えた変更は表面的なものだけで、IBOutletsはすべてそのままです。

4

5 に答える 5

2

おそらく、xibで変更せずに、コードでIBOutletの名前を変更した可能性があります。

于 2009-09-26T10:17:28.283 に答える
1

申し訳ありませんが、私のせいです。MainWindow.xibファイルを削除したようです。そのため、変更を加えた後、起動時にデリゲートが呼び出されませんでした。再作成してアプリデリゲートとUIApplicationにリンクしたので、すべてが機能します。

于 2009-09-26T11:51:51.203 に答える
0

おそらく、ixibからコードにIBOutletsが接続されていて、それらの接続が切断されています。

nibname文字列がどのように変更されたかについてもう少し詳しく説明する必要があります。xibファイルの名前を変更しましたか?

于 2009-09-26T10:19:59.537 に答える
0

一部のクラスとXibの名前を変更し、SIGABRTをmain.mに追加しました

Identity Inspectorのクラス名が、存在しないクラス名を指している可能性があります

于 2011-11-24T09:45:29.097 に答える
0

これは、initWithNibNameで正しいxib名を指定していないため、クラッシュするためです。

于 2012-10-11T04:26:48.990 に答える