【问题标题】:SwiftUI Preview crashes with stackoverflowSwiftUI Preview 因 stackoverflow 崩溃
【发布时间】:2019-06-18 11:21:44
【问题描述】:

在一个现有的应用程序中,我想尝试 SwiftUI 以获得一些小视图。我在 macOS Catalina 和 Xcode 11 中打开了我的项目并添加了一个 SwiftUI 类。

令我惊讶的是,我收到以下错误:

无法在此文件中预览 -- YourApp.app 可能已崩溃

在预览窗口的顶部。

当我查看崩溃日志时,我发现这是因为 stackoverflow 错误:

崩溃的线程:0 调度队列:com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_PROTECTION_FAILURE at 0x00007ffee98cfff8
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Segmentation fault: 11
Termination Reason:    Namespace SIGNAL, Code 0xb
Terminating Process:   exc handler [37403]

External Modification Warnings:
Thread creation by external task.

VM Regions Near 0x7ffee98cfff8:
    MALLOC_SMALL           00007fa424000000-00007fa424800000 [ 8192K] rw-/rwx SM=PRV  
--> STACK GUARD            00007ffee60d0000-00007ffee98d0000 [ 56.0M] ---/rwx SM=NUL  stack guard for thread 0
    Stack                  00007ffee98d0000-00007ffeea0d0000 [ 8192K] rw-/rwx SM=ALI  thread 0

Application Specific Information:
CoreSimulator 643.8.4 - Device: iPhone Xʀ (1C2CE9A2-334D-4A62-8AE9-C6CCC6D346E6) - Runtime: iOS 13.0 (17A5492t) - DeviceType: iPhone Xʀ

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   MessageView.2.preview-thunk.dylib   0x000000012f726918 -[UIViewController(PageViewLogging) ms_viewWillAppear:] + 34
1   MessageView.2.preview-thunk.dylib   0x000000012f72691b -[UIViewController(PageViewLogging) ms_viewWillAppear:] + 37
2   MessageView.2.preview-thunk.dylib   0x000000012f72691b -[UIViewController(PageViewLogging) ms_viewWillAppear:] + 37
3   MessageView.2.preview-thunk.dylib   0x000000012f72691b -[UIViewController(PageViewLogging) ms_viewWillAppear:] + 37
...
508 MessageView.2.preview-thunk.dylib   0x000000012f72691b -[UIViewController(PageViewLogging) ms_viewWillAppear:] + 37
509 MessageView.2.preview-thunk.dylib   0x000000012f72691b -[UIViewController(PageViewLogging) ms_viewWillAppear:] + 37
510 MessageView.2.preview-thunk.dylib   0x000000012f72691b -[UIViewController(PageViewLogging) ms_viewWillAppear:] + 37
511 MessageView.2.preview-thunk.dylib   0x000000012f72691b -[UIViewController(PageViewLogging) ms_viewWillAppear:] + 37

【问题讨论】:

    标签: ios swiftui


    【解决方案1】:

    这是因为您在 didFinishLaunchingWithOptions 或 AppDelegate 中使用了外部框架。在处理 SwiftUI 代码时清除该方法,它将按预期工作。

    不完全确定这是为什么,但可能是因为 SwiftUI 运行您的应用程序的一个实例来呈现它,并使用 AppDelegate 来执行此操作。

    【讨论】:

      猜你喜欢
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      • 2022-07-16
      • 2019-11-08
      • 1970-01-01
      • 1970-01-01
      • 2020-04-18
      相关资源
      最近更新 更多