0

[UIView(CALayer Delegate)drawLayer:inContext:でアプリがクラッシュしました。最も難しいのは、クラッシュログにアプリのコードがなく、再現できないことです。この問題には数日かかりましたが、まだわかりません。あなたたちが提供するどんなアイデアでも、私は試みます。ご協力ありがとうございました。

 crash log:
    0  libobjc.A.dylib     objc_msgSend_stret (in libobjc.A.dylib) + 18
    1  UIKit             -[UIView(CALayerDelegate) drawLayer:inContext:]
    2  QuartzCore         -[CALayer drawInContext:] (in QuartzCore) + 116
    3  QuartzCore          CABackingStoreUpdate_ (in QuartzCore) + 1782
    4  QuartzCore          CA::Layer::display_() (in QuartzCore) + 972
    5  QuartzCore        CA::Layer::display() (in QuartzCore) + 128
    6  QuartzCore      CA::Layer::display_if_needed(CA::Transaction*) (in QuartzCore)
    7  QuartzCore     CA::Context::commit_transaction(CA::Transaction*)
    8  QuartzCore      CA::Transaction::commit() (in QuartzCore) + 314
    9  QuartzCore      CA::Transaction::pop() (in QuartzCore) + 126
    10 QuartzCore     +[CATransaction commit] (in QuartzCore) + 34
    11 UIKit          _UIWindowUpdateVisibleContextOrder (in UIKit) + 188
    12 UIKit           +[UIWindow _prepareWindowsForAppResume] (in UIKit) + 10
    13 UIKit          -[UIApplication _handleApplicationResumeEvent:] (in UIKit) + 74
    14 UIKit              -[UIApplication handleEvent:withNewEvent:] (in UIKit) + 1080
    15 UIKit              -[UIApplication sendEvent:] (in UIKit) + 54
    16 UIKit               _UIApplicationHandleEvent (in UIKit) + 5808
4

1 に答える 1

0

解決策は、問題を切り分けてみることです。これを引き起こしているビューが1つあるとすると、最も可能性の高い説明は、ビュー内の何かが破損しているか、解放されていることです。

1)ゾンビをオンにして、取引が解除されたアイテムにメッセージが表示されるかどうかを確認しましたか?

2)クラッシュの開始時に表示されている(または表示されようとしている)ビューで、アイテムを1つずつ削除するか、ビューからすべて削除して、1つずつ追加を開始します。この種の厄介な作業を行う良い方法は、プロジェクトフォルダーをコピーし、古いフォルダーを保存して、コードのチャンクを切り取って、作業ポイントに到達できるようにすることです。

私の推測では、何かがリリースされる前にリリースされていると思います。

于 2012-08-21T11:50:20.973 に答える