gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:39:35 27 4
gpt4 key购买 nike

我遇到了一次崩溃,根据崩溃报告,这不是我的错。我希望那是真的。我已经使用 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) drawWithRect:options: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::Layer::display_() + 1168
13 QuartzCore 0x26f588a0 CA::Layer::display_if_needed(CA::Transaction*) + 204
14 QuartzCore 0x26f58560 CA::Layer::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 调度中以及什么可以在后台线程上完成。我一直在根据建议的答案进行更改,但仍然遇到同样的崩溃。

谢谢。

最佳答案

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

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

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

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com