2

バックグラウンド:

CS193Pコースで「HelloPoly」の割り当てを試しています。.xibファイルとカスタムControllerクラスを作成しました。

私はメソッドを具体化していません-IBがクラスファイルをxcodeに書き込むことだけを許可しました。

問題:

私がアプリケーションを起動するたびに、それは爆破します。gdbを実行すると、EXC_BAD_ACCESSエラーであることがわかります。これは、メモリに存在しないものにアクセスしていることを意味しますか?私が持っているのは、IBとメインによって作成されたデフォルトのファイルだけです。これ以上何もない。

投稿されたコードソリューションをチェックして何が違うのかを確認しましたが、次に何を試すべきかわかりません。起動時にアプリがクラッシュするたびに、通常は何をチェックしますか?

スタックトレースは、UIApplicationMainを作成するときにmain.mで発生していることを示しています。つまり、アプリケーションデリゲートに到達することはありません。

トレースは次のとおりです。

Program received signal:  “EXC_BAD_ACCESS”.
(gdb) where
#0  0x01b70d45 in CFHash ()
#1  0x01b741cf in __CFDictionaryFindBuckets1b ()
#2  0x01b72b0a in CFDictionaryGetValue ()
#3  0x00450535 in -[UIProxyObject initWithCoder:] ()
#4  0x0133886e in UINibDecoderDecodeObjectForValue ()
#5  0x013398c2 in -[UINibDecoder decodeObjectForKey:] ()
#6  0x00450b35 in -[UIRuntimeConnection initWithCoder:] ()
#7  0x0045101c in -[UIRuntimeEventConnection initWithCoder:] ()
#8  0x0133886e in UINibDecoderDecodeObjectForValue ()
#9  0x0133820a in UINibDecoderDecodeObjectForValue ()
#10 0x013398c2 in -[UINibDecoder decodeObjectForKey:] ()
#11 0x0044feab in -[UINib instantiateWithOptions:owner:loadingResourcesFromBundle:] ()
#12 0x00451fcb in -[NSBundle(NSBundleAdditions) loadNibNamed:owner:options:] ()
#13 0x002910a6 in -[UIApplication _loadMainNibFile] ()
#14 0x0029a82a in -[UIApplication _runWithURL:sourceBundleID:] ()
#15 0x00297b88 in -[UIApplication handleEvent:withNewEvent:] ()
#16 0x002936d3 in -[UIApplication sendEvent:] ()
#17 0x0029a0b5 in _UIApplicationHandleEvent ()
#18 0x0239eef1 in PurpleEventCallback ()
#19 0x01bb2b80 in CFRunLoopRunSpecific ()
#20 0x01bb1c48 in CFRunLoopRunInMode ()
#21 0x00291e69 in -[UIApplication _run] ()
#22 0x0029b003 in UIApplicationMain ()
#23 0x000026a8 in main (argc=1, argv=0xbffff000) at main.m:14

他のスレッドではこの特定の問題は見られませんでしたが、見逃した場合は手がかりを教えてください。

アイデア?

ありがとう。

4

3 に答える 3

3

NibDecoderでクラッシュします。つまり、XIBファイルをロードするときです。おそらく、存在しないか初期化されていないオブジェクトまたはプロパティへの参照があります。

于 2010-02-07T22:05:18.760 に答える
0

.xibファイルの名前とinitByNibNameメソッドの名前が同じである場合は、それらを確認します。おそらく、これら2つの名前は異なります。

于 2010-02-07T22:42:32.613 に答える
0

自分で教える本の同様に基本的なiPhoneアプリでこれを解決したところ、前ではなく「」の後に@を置き忘れただけであることに気付きました。エラー:

animalSounds=[[NSArray alloc]initWithObjects: @"Oink","@Rawr",@"Ssss",@"Roof","@Meow",@"Honk",@"Squeak",nil];

デバッグには、ブレークポイントとNSLog出力を設定する非常に基本的な方法を使用したので、使用していた4つの変数のどれが失敗したかを把握できました。

于 2010-12-28T21:04:59.567 に答える