【问题标题】:Crash just after UIView creationUIView 创建后崩溃
【发布时间】:2016-01-11 13:42:13
【问题描述】:

我有一个我不理解的崩溃组,我还没有设法重现它。有谁知道这里发生了什么?对我来说,它看起来像是创建了一个视图,并且可能立即解除分配?事实上,在这个堆栈跟踪之前,我也经常看到我的一些视图引用了init 方法,但是视图各不相同,所以我的应用程序的许多地方似乎都有这个问题。 :-(

Application Specific Information:
objc_msgSend() selector name: retain

Thread 0 Crashed:
0   libobjc.A.dylib                      0x0000000182b81bd0 objc_msgSend + 16
1   Foundation                           0x0000000183dd68e4 -[NSObject(NSKeyValueObserverNotification) willChangeValueForKey:] + 320
2   QuartzCore                           0x0000000185bf3374 CA::Layer::set_delegate(objc_object*) + 68
3   UIKit                                0x00000001881f6538 -[UIView _createLayerWithFrame:] + 576
4   UIKit                                0x00000001881f5ff8 UIViewCommonInitWithFrame + 684
5   UIKit                                0x00000001881f5ce8 -[UIView initWithFrame:] + 136

这是不是说:objc_msgSend() selector name: retain 某种线索?在我看来,retain 似乎被调用了,但是为什么它会崩溃呢?

【问题讨论】:

  • 它可能试图保留已经发布的内容。在尝试复制它时,在你的构建方案中打开僵尸。
  • 你们都解决了这个问题吗?我遇到了非常相似的崩溃。
  • 没有钓鱼,我还是有这个问题。
  • @knutigro 现在呢,你解决了这个问题吗? :D 您是否尝试在本地运行,但没有调试器,或发布版本.. 或来自 testflight?

标签: ios cocoa memory crash


【解决方案1】:

这是一个内存管理问题。您将需要在打开 Zombies 的情况下复制崩溃的条件。一些物体从它的指针下消失了,僵尸会告诉你它是什么物体。

关于这种崩溃的详细文章:

http://www.sealiesoftware.com/blog/archive/2008/09/22/objc_explain_So_you_crashed_in_objc_msgSend.html

【讨论】:

  • 谢谢,但复制它非常困难,因为它不会定期发生,而且它从未在调试器中发生在我身上。我只是在我们的崩溃日志中看到它,这些日志是从数千个用户和数十万个会话中收集的。不过,我仍然想了解发生了什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-09
相关资源
最近更新 更多