[UIView(CALayer Delegate)drawLayer:inContext:crash

时间:2012-08-21 11:42:50

标签: ios crash

我的应用程序崩溃在[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

1 个答案:

答案 0 :(得分:0)

解决方案是尝试并将问题分组。假设您有一个导致此问题的视图,那么最可能的解释是视图中的某些内容已损坏或已被释放。

1)您是否尝试打开Zombies,看看是否有一些dealloc'd项目正在收到消息?

2)在崩溃开始时显示(或即将显示)的视图中,要么一次删除一个项目,要么从视图中删除它们,然后逐个添加它们。做这种杂乱的工作的一个好方法是复制你的项目文件夹,保存旧文件夹,然后去掉一大堆代码,这样你就可以到达一个工作点。

我的猜测是,事情应该在它应该发布之前发布。