SwiftUI Preview вылетает с переполнением стека - PullRequest
0 голосов
/ 18 июня 2019

В существующем приложении я хотел попробовать SwiftUI для нескольких небольших просмотров. Я открыл свой проект в macOS Catalina и Xcode 11 и добавил класс SwiftUI.

К моему удивлению, я получил следующую ошибку:

Невозможно выполнить предварительный просмотр в этом файле - возможно, произошел сбой YourApp.app

вверху окна предварительного просмотра.

Когда я смотрю на журнал сбоев, я вижу, что это из-за ошибки переполнения стека:

Сбой потока: 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

1 Ответ

0 голосов
/ 18 июня 2019

Это потому, что вы используете внешние каркасы в вашем didFinishLaunchingWithOptions вашего AppDelegate.Очистите этот метод, пока вы работаете с кодом SwiftUI, и он будет работать так, как он должен.

Не совсем уверен, почему это так, но это может быть потому, что SwiftUI запускает экземпляр вашего приложения для его визуализации и используетAppDelegate чтобы сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...