2011-11-03 6 views
0

IOSアプリケーションを(IPadシミュレータまたは実デバイスのいずれかで)実行すると、EXC_BAD_ACCESSエラーが発生します。通常はトラブルシューティングに問題はありませんが、エラーはシステム自体から深く入り込んでおり、検索した後にトラブルシューティングを進める方法が残っています。IOSアプリケーションの暗黙のEXC_BAD_ACCESSのトラブルシューティング

誰でも私に何が起こっているのか、これをトラブルシューティングする方法を教えていただけますか?私は巨大なプロジェクトで作業していますが、エラーメッセージから何らかの兆候が出ることはありません。

ありがとうございます!スタックトレースから

#0 0x0230609b in objc_msgSend() 
#1 0x0206943d in CFRetain() 
#2 0x0214e9c0 in +[__NSArrayI __new::]() 
#3 0x020a200a in -[__NSPlaceholderArray initWithObjects:count:]() 
#4 0x009aa2dc in -[CALayerArray copyWithZone:]() 
#5 0x02164bd9 in -[NSObject copy]() 
#6 0x016bb0fa in -[UIView dealloc]() 
#7 0x02306e4d in _objc_rootRelease() 
#8 0x0206e435 in CFRelease() 
#9 0x0214fe94 in -[__NSArrayM dealloc]() 
#10 0x02306e4d in _objc_rootRelease() 
#11 0x02306e10 in objc_release() 
#12 0x02307c60 in (anonymous namespace)::AutoreleasePoolPage::pop(void*)() 
#13 0x02096ed8 in _CFAutoreleasePoolPop() 
#14 0x012619f9 in -[NSAutoreleasePool release]() 
#15 0x0168af78 in _UIApplicationHandleEvent() 
#16 0x035dffa9 in PurpleEventCallback() 
#17 0x021361c5 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__() 
#18 0x0209b022 in __CFRunLoopDoSource1() 
#19 0x0209990a in __CFRunLoopRun() 
#20 0x02098db4 in CFRunLoopRunSpecific() 
#21 0x02098ccb in CFRunLoopRunInMode() 
#22 0x016872a7 in -[UIApplication _run]() 
#23 0x01688a9b in UIApplicationMain() 
#24 0x0020f2a4 in main at /..../main.m:17 
+1

これはあなたが問題を直接追跡する手助けをしませんでしたが、これはWTFがこれらのエラーで起こっていたことを理解する助けに非常に役立ちました:http://loufranco.com/blog/files/Understanding-EXC_BAD_ACCESS.html – Tim

+1

NSZombieEnabledそのリンク内のリンク)もこれらから始めるのに適しています。 – jrturton

答えて

1

私が最初に推測したのは、既に自動リリースされているビューをリリースするということです。例:

また、ビューを2回リリースすることもできますし、スーパービューが消えたビューを解放することもできます。

可能であれば、これらの問題のほとんど(ただしすべてではありません)が解決されるため、プロジェクトをARCに移行することを検討してください。さもなければ、それをデバッグするための最善の策は、クラッシュが消えるまでコードの一部を#ifdefしてから、再びクラッシュするまでコードを戻すことです。

+0

提案していただきありがとうございます。私はコードの連続した部分をコメントアウトして、私がオブジェクトを2回割り振り解除していることを発見しました(: – Locksleyu

1

次をうまくすることができます

1)これは、配列が

3をリリースしている)自動解放プール

2で行うことです)私は推測しますその配列にいくつかのUIViewが含まれています

4)UIView deallocの一部として、何かがひどく間違っています

申し訳ありませんが、その有用ではありませんそれ:)

スタックトレースの開始時に自動解放が、それはほぼ確実にあなたが十分なものを保持していない何かであることを示しています:)

内の任意の特定のビューがありますこのエラーが発生しますか?