• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 我的应用程序未在崩溃线程中列出

[复制链接]
菜鸟教程小白 发表于 2022-12-13 12:04:54 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

根据崩溃报告,我发生了一次崩溃,这不是我的错。我希望那是真的。我已经用 NSZombies 对应用程序进行了概要分析,但它还没有在那里发生。以下是崩溃报告的摘录:

Date/Time:           2015-11-23 19:40:34.34 -0600
Launch Time:         2015-11-23 18:49:43.43 -0600
OS Version:          iOS 9.1 (13B143)
Report Version:      104

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000c
Triggered by Thread:  7 

Thread 7 Crashed:
    0   libobjc.A.dylib                 0x34fcbac6 objc_msgSend + 6
    1   UIFoundation                    0x31e7242e +[NSStringDrawingTextStorageSettings threadSpecificStringDrawingTextStorageSettings:] + 62
    2   UIFoundation                    0x31e675de +[NSString(NSStringDrawing) typesetterBehavior] + 34
    3   UIFoundation                    0x31e68ae2 __NSStringDrawingEngine + 298
    4   UIFoundation                    0x31e68908 -[NSString(NSExtendedStringDrawing) drawWithRectptions:attributes:context:] + 144
    5   UIKit                           0x276aa488 -[UILabel _drawTextInRect:baselineCalculationOnly:] + 4864
    6   UIKit                           0x2771b40c -[UILabel drawTextInRect:] + 540
    7   UIKit                           0x2771b1e4 -[UILabel drawRect:] + 88
    8   UIKit                           0x2771b15e -[UIView(CALayerDelegate) drawLayer:inContext:] + 386
    9   QuartzCore                      0x26f8b6fc -[CALayer drawInContext:] + 228
    10  QuartzCore                      0x26f75088 CABackingStoreUpdate_ + 1852
    11  QuartzCore                      0x270619d0 ___ZN2CA5Layer8display_Ev_block_invoke + 52
    12  QuartzCore                      0x26f745c8 CA:ayer::display_() + 1168
    13  QuartzCore                      0x26f588a0 CA:ayer::display_if_needed(CA::Transaction*) + 204
    14  QuartzCore                      0x26f58560 CA:ayer::layout_and_display_if_needed(CA::Transaction*) + 24
    15  QuartzCore                      0x26f57a78 CA::Context::commit_transaction(CA::Transaction*) + 368
    16  QuartzCore                      0x26f5772a CA::Transaction::commit() + 614
    17  QuartzCore                      0x26f84ed2 CA::Transaction::release_thread(void*) + 310
    18  libsystem_pthread.dylib         0x3589e54c _pthread_tsd_cleanup + 508
    19  libsystem_pthread.dylib         0x3589e14e _pthread_exit + 86
    20  libsystem_pthread.dylib         0x3589db3c _pthread_wqthread + 1044
    21  libsystem_pthread.dylib         0x3589d718 start_wqthread + 8

我的应用程序没有在崩溃线程的任何地方列出。我有几个问题:

  1. 如何解读此报告以找到崩溃的触发因素?我看到那里引用了 UILabel,而且我有很多,我怎么知道可能是哪个原因?
  2. 崩溃是否是中间的一行,并且报告显示前后的操作以提供上下文?

感谢您的帮助。这种调试令人困惑。

更新:2015 年 11 月 27 日:

我是否需要确保在主线程上完成如下声明:

UIView *lineView;

或仅进行如下修改:

lineView = [[UIView alloc] initWithFrame:CGRectMake(15, cell.contentView.frame.size.height - 1.0, cell.contentView.frame.size.width, 1)];

我无法确定需要在 GCD 调度中包装哪些内容以及可以在后台线程中执行哪些操作。我一直在按照建议的答案进行更改,但我仍然遇到同样的崩溃。

谢谢。



Best Answer-推荐答案


您正在崩溃,因为您违反了 UIView 后代只能在主线程上操作的规则。崩溃不一定是唯一的结果,但在 Apple 看来,这是完全可以接受的。

修复您的代码,以便将这部分工作分派(dispatch)给主线程。

关于ios - 我的应用程序未在崩溃线程中列出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33895299/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap