2016-07-27 8 views
1

はいつか私のプロジェクトにコードを書いた後、私は、デバッガが自分のアプリケーションを一時停止し、コンソールにlldbを置く気づいて、私は継続させることができませんでした。私はNSZombiesを使用して、私はこのメッセージを得た:「-[NSThread threadDictionary]: message sent to deallocated instanceを」。私は周りを見回しましたが、これを引き起こしている何か助けを見つけることができませんでした。私はバックトレースを印刷するとき、私は得る:取得エラー「 - [NSThread threadDictionary]:割り当て解除インスタンスに送信されたメッセージ」

thread #17: tid = 0x7886f, 0x0000000180f7ab40 CoreFoundation`___forwarding___ + 700, stop reason = EXC_BREAKPOINT (code=1, subcode=0x180f7ab40) 
frame #0: 0x0000000180f7ab40 CoreFoundation`___forwarding___ + 700 
frame #1: 0x0000000180e78c5c CoreFoundation`_CF_forwarding_prep_0 + 92 
frame #2: 0x00000001860536dc UIFoundation`+[NSStringDrawingTextStorageSettings threadSpecificStringDrawingTextStorageSettings:] + 64 
frame #3: 0x000000018604900c UIFoundation`+[NSString(NSStringDrawing) typesetterBehavior] + 32 
frame #4: 0x000000018604a6d4 UIFoundation`__NSStringDrawingEngine + 244 
frame #5: 0x000000018604a4d0 UIFoundation`-[NSString(NSExtendedStringDrawing) drawWithRect:options:attributes:context:] + 176 
frame #6: 0x00000001860eb564 UIKit`-[UILabel _drawTextInRect:baselineCalculationOnly:] + 3856 
frame #7: 0x000000018615e8f0 UIKit`-[UILabel drawTextInRect:] + 544 
frame #8: 0x000000018615e678 UIKit`-[UIView(CALayerDelegate) drawLayer:inContext:] + 368 
frame #9: 0x0000000183a92230 QuartzCore`-[CALayer drawInContext:] + 260 
frame #10: 0x0000000183a7c8b4 QuartzCore`CABackingStoreUpdate_ + 2432 
frame #11: 0x0000000183b94360 QuartzCore`___ZN2CA5Layer8display_Ev_block_invoke + 52 
frame #12: 0x0000000183a7ba90 QuartzCore`CA::Layer::display_() + 1368 
frame #13: 0x0000000183a5d7b0 QuartzCore`CA::Layer::display_if_needed(CA::Transaction*) + 228 
frame #14: 0x0000000183a5d49c QuartzCore`CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 44 
frame #15: 0x0000000183a5cac0 QuartzCore`CA::Context::commit_transaction(CA::Transaction*) + 252 
frame #16: 0x0000000183a5c820 QuartzCore`CA::Transaction::commit() + 500 
frame #17: 0x0000000183a8bbd4 QuartzCore`CA::Transaction::release_thread(void*) + 236 
frame #18: 0x0000000180bda1e0 libsystem_pthread.dylib`_pthread_tsd_cleanup + 584 
frame #19: 0x0000000180bd9d58 libsystem_pthread.dylib`_pthread_exit + 136 
frame #20: 0x0000000180bd953c libsystem_pthread.dylib`_pthread_wqthread + 1296 
frame #21: 0x0000000180bd9020 libsystem_pthread.dylib`start_wqthread + 4 

すべてのヘルプを見つけるために大いに役立ちますが起こっていただきました!

+1

私の推測では:あなたは、バックグラウンドスレッドでUIの更新が発生する何かをやっています。私はあなたのコードを見直し、UI要素に触れる何かがメインスレッドに移動したことを確認することをお勧めします。 –

答えて

0

は私が弱い参照して、ラベルを持っていました。私は長い間それを隠していたし、ガベージコレクションがきれいになっているようだ。だから私はそれにデータを送信しようとしたとき、それはすでにdeallocだった。

-3

どこかにあなたが任意のクラスとクラスオブジェクトのインスタンスメソッドを呼び出しているがnilです。問題を見つけた

+1

送信しても問題ありません。割り当て解除された非ゼロ参照への送信は行われません。 – Avi

関連する問題