Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 点击按钮时函数调用发生奇怪的崩溃_Ios_Swift - Fatal编程技术网

Ios 点击按钮时函数调用发生奇怪的崩溃

Ios 点击按钮时函数调用发生奇怪的崩溃,ios,swift,Ios,Swift,我对fabric的碰撞报告有问题,我没有收到: #0. Crashed: com.apple.main-thread 0 AppGone 0x1000d2ae0 SignupViewController.goToNext() -> () (SignupViewController.swift) 1 AppGone 0x1000d2b1c @objc SignupViewController.goToNext

我对fabric的碰撞报告有问题,我没有收到:

#0. Crashed: com.apple.main-thread
0  AppGone                     0x1000d2ae0 SignupViewController.goToNext() -> () (SignupViewController.swift)
1  AppGone                     0x1000d2b1c @objc SignupViewController.goToNext() -> () (SignupViewController.swift)
2  UIKit                          0x18f0367b0 -[UIApplication sendAction:to:from:forEvent:] + 96
3  UIKit                          0x18f036730 -[UIControl sendAction:to:forEvent:] + 80
4  UIKit                          0x18f020be4 -[UIControl _sendActionsForEvents:withEvent:] + 452
5  UIKit                          0x18f03601c -[UIControl touchesEnded:withEvent:] + 584
6  UIKit                          0x18f035b44 -[UIWindow _sendTouchesForEvent:] + 2484
7  UIKit                          0x18f030d8c -[UIWindow sendEvent:] + 2988
8  UIKit                          0x18f001858 -[UIApplication sendEvent:] + 340
9  UIKit                          0x18f7eecb8 __dispatchPreprocessedEventFromEventQueue + 2736
10 UIKit                          0x18f7e8720 __handleEventQueue + 784
11 CoreFoundation                 0x189166278 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
12 CoreFoundation                 0x189165bc0 __CFRunLoopDoSources0 + 524
13 CoreFoundation                 0x1891637c0 __CFRunLoopRun + 804
14 CoreFoundation                 0x189092048 CFRunLoopRunSpecific + 444
15 GraphicsServices               0x18ab15198 GSEventRunModal + 180
16 UIKit                          0x18f06c628 -[UIApplication _run] + 684
17 UIKit                          0x18f067360 UIApplicationMain + 208
18 AppGone                     0x100045070 main (AppDelegate.swift:22)
19 libdispatch.dylib              0x1880745b8 (Missing)

--

#0. Crashed: com.apple.main-thread
0  AppGone                     0x1000d2ae0 SignupViewController.goToNext() -> () (SignupViewController.swift)
1  AppGone                     0x1000d2b1c @objc SignupViewController.goToNext() -> () (SignupViewController.swift)
2  UIKit                          0x18f0367b0 -[UIApplication sendAction:to:from:forEvent:] + 96
3  UIKit                          0x18f036730 -[UIControl sendAction:to:forEvent:] + 80
4  UIKit                          0x18f020be4 -[UIControl _sendActionsForEvents:withEvent:] + 452
5  UIKit                          0x18f03601c -[UIControl touchesEnded:withEvent:] + 584
6  UIKit                          0x18f035b44 -[UIWindow _sendTouchesForEvent:] + 2484
7  UIKit                          0x18f030d8c -[UIWindow sendEvent:] + 2988
8  UIKit                          0x18f001858 -[UIApplication sendEvent:] + 340
9  UIKit                          0x18f7eecb8 __dispatchPreprocessedEventFromEventQueue + 2736
10 UIKit                          0x18f7e8720 __handleEventQueue + 784
11 CoreFoundation                 0x189166278 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
12 CoreFoundation                 0x189165bc0 __CFRunLoopDoSources0 + 524
13 CoreFoundation                 0x1891637c0 __CFRunLoopRun + 804
14 CoreFoundation                 0x189092048 CFRunLoopRunSpecific + 444
15 GraphicsServices               0x18ab15198 GSEventRunModal + 180
16 UIKit                          0x18f06c628 -[UIApplication _run] + 684
17 UIKit                          0x18f067360 UIApplicationMain + 208
18 AppGone                     0x100045070 main (AppDelegate.swift:22)
19 libdispatch.dylib              0x1880745b8 (Missing)

#1. Thread
0  libsystem_kernel.dylib         0x188186a88 __workq_kernreturn + 8
1  libsystem_pthread.dylib        0x18824936c _pthread_wqthread + 1452
2  libsystem_pthread.dylib        0x188248db4 start_wqthread + 4

#2. Thread
0  libsystem_kernel.dylib         0x188186a88 __workq_kernreturn + 8
1  libsystem_pthread.dylib        0x18824936c _pthread_wqthread + 1452
2  libsystem_pthread.dylib        0x188248db4 start_wqthread + 4

#3. com.apple.uikit.eventfetch-thread
0  libsystem_kernel.dylib         0x18816816c mach_msg_trap + 8
1  libsystem_kernel.dylib         0x188167fdc mach_msg + 72
2  CoreFoundation                 0x189165cec __CFRunLoopServiceMachPort + 192
3  CoreFoundation                 0x189163908 __CFRunLoopRun + 1132
4  CoreFoundation                 0x189092048 CFRunLoopRunSpecific + 444
5  Foundation                     0x189ba0b1c -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304
6  Foundation                     0x189bc160c -[NSRunLoop(NSRunLoop) runUntilDate:] + 96
7  UIKit                          0x18f9e1c7c -[UIEventFetcher threadMain] + 136
8  Foundation                     0x189c9e50c __NSThread__start__ + 1024
9  libsystem_pthread.dylib        0x18824b860 _pthread_body + 240
10 libsystem_pthread.dylib        0x18824b770 _pthread_body + 282
11 libsystem_pthread.dylib        0x188248dbc thread_start + 4

#4. Thread
0  libsystem_kernel.dylib         0x188186a88 __workq_kernreturn + 8
1  libsystem_pthread.dylib        0x18824936c _pthread_wqthread + 1452
2  libsystem_pthread.dylib        0x188248db4 start_wqthread + 4

#5. com.twitter.crashlytics.ios.MachExceptionServer
0  AppGone                     0x1002e7430 CLSProcessRecordAllThreads + 4297913392
1  AppGone                     0x1002e7430 CLSProcessRecordAllThreads + 4297913392
2  AppGone                     0x1002e72ec CLSProcessRecordAllThreads + 4297913068
3  AppGone                     0x1002d7a9c CLSHandler + 4297849500
4  AppGone                     0x1002d2a40 CLSMachExceptionServer + 4297828928
5  libsystem_pthread.dylib        0x18824b860 _pthread_body + 240
6  libsystem_pthread.dylib        0x18824b770 _pthread_body + 282
7  libsystem_pthread.dylib        0x188248dbc thread_start + 4

#6. com.apple.NSURLConnectionLoader
0  libsystem_kernel.dylib         0x18816816c mach_msg_trap + 8
1  libsystem_kernel.dylib         0x188167fdc mach_msg + 72
2  CoreFoundation                 0x189165cec __CFRunLoopServiceMachPort + 192
3  CoreFoundation                 0x189163908 __CFRunLoopRun + 1132
4  CoreFoundation                 0x189092048 CFRunLoopRunSpecific + 444
5  CFNetwork                      0x18987fcec +[NSURLConnection(Loader) _resourceLoadLoop:] + 336
6  Foundation                     0x189c9e50c __NSThread__start__ + 1024
7  libsystem_pthread.dylib        0x18824b860 _pthread_body + 240
8  libsystem_pthread.dylib        0x18824b770 _pthread_body + 282
9  libsystem_pthread.dylib        0x188248dbc thread_start + 4

#7. GAIThread
0  libsystem_kernel.dylib         0x18816816c mach_msg_trap + 8
1  libsystem_kernel.dylib         0x188167fdc mach_msg + 72
2  CoreFoundation                 0x189165cec __CFRunLoopServiceMachPort + 192
3  CoreFoundation                 0x189163908 __CFRunLoopRun + 1132
4  CoreFoundation                 0x189092048 CFRunLoopRunSpecific + 444
5  Foundation                     0x189ba0b1c -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304
6  Foundation                     0x189bf52a0 -[NSRunLoop(NSRunLoop) run] + 88
7  AppGone                     0x1002b2fac +[GAI threadMain:] + 4297699244
8  Foundation                     0x189c9e50c __NSThread__start__ + 1024
9  libsystem_pthread.dylib        0x18824b860 _pthread_body + 240
10 libsystem_pthread.dylib        0x18824b770 _pthread_body + 282
11 libsystem_pthread.dylib        0x188248dbc thread_start + 4

#8. Thread
0  libsystem_kernel.dylib         0x188185e1c __psynch_cvwait + 8
1  libsystem_pthread.dylib        0x18824a9d0 _pthread_cond_wait + 640
2  libc++.1.dylib                 0x187b753ec std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 56
3  JavaScriptCore                 0x18d93a548 void std::__1::condition_variable_any::wait<std::__1::unique_lock<bmalloc::Mutex> >(std::__1::unique_lock<bmalloc::Mutex>&) + 112
4  JavaScriptCore                 0x18d93a4bc bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::*)()>::threadRunLoop() + 168
5  JavaScriptCore                 0x18d93a39c std::__1::__shared_ptr_emplace<std::__1::mutex, std::__1::allocator<std::__1::mutex> >::~__shared_ptr_emplace() + 10
6  JavaScriptCore                 0x18d93a64c void* std::__1::__thread_proxy<std::__1::tuple<void (*)(bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::*)()>*), bmalloc::AsyncTask<bmalloc::Heap, void (bmalloc::Heap::*)()>*> >(void*) + 92
7  libsystem_pthread.dylib        0x18824b860 _pthread_body + 240
8  libsystem_pthread.dylib        0x18824b770 _pthread_body + 282
9  libsystem_pthread.dylib        0x188248dbc thread_start + 4

#9. com.apple.CoreMotion.MotionThread
0  libsystem_kernel.dylib         0x18816816c mach_msg_trap + 8
1  libsystem_kernel.dylib         0x188167fdc mach_msg + 72
2  CoreFoundation                 0x189165cec __CFRunLoopServiceMachPort + 192
3  CoreFoundation                 0x189163908 __CFRunLoopRun + 1132
4  CoreFoundation                 0x189092048 CFRunLoopRunSpecific + 444
5  CoreFoundation                 0x1890df8d4 CFRunLoopRun + 112
6  CoreMotion                     0x18feda7dc (null) + 187376
7  libsystem_pthread.dylib        0x18824b860 _pthread_body + 240
8  libsystem_pthread.dylib        0x18824b770 _pthread_body + 282
9  libsystem_pthread.dylib        0x188248dbc thread_start + 4

#10. Thread
0  libsystem_kernel.dylib         0x188186a88 __workq_kernreturn + 8
1  libsystem_pthread.dylib        0x188249188 _pthread_wqthread + 968
2  libsystem_pthread.dylib        0x188248db4 start_wqthread + 4

#11. Thread
0  libsystem_kernel.dylib         0x188186a88 __workq_kernreturn + 8
1  libsystem_pthread.dylib        0x18824936c _pthread_wqthread + 1452
2  libsystem_pthread.dylib        0x188248db4 start_wqthread + 4
当我测试这个的时候,它就工作了。我不明白它怎么会崩溃

还有一点很奇怪,@objc-goToNext方法,因为我声明它时没有@objc

有人知道的更多吗

编辑:

我测试了回调是否通过

if NSThread.isMainThread() { print("Main Thread") }

因此,取消hud不会是问题。

尝试取消主线程上的SVProgressHUD.disclose(),因为您现在正在后台取消它,hud交互通常必须在主线程中完成

 dispatch_async(dispatch_get_main_queue {
    SVProgressHUD.dismiss()
 })

我猜您的回调发生在视图控制器内存不足之后

无论何时进行异步调用,都应该将self转换为弱self

 SVProgressHUD.show()
    let selectedRow = self.pickerView.selectedRowInComponent(0)
    let profileId = self.profiles[selectedRow].id
    RemoteServiceFactory.serviceCall().updateUser(profileId) { [weak self] (result, error) in

        SVProgressHUD.dismiss()
        guard let weakSelf = self else { return }

        if error != nil {
            weakSelf.showErrorWithMessage("error")
        } else {
            weakSelf.goToNextStep(weakSelf[selectedRow])
        }
    }

我猜@objc是隐含的,因为您的类继承自NSObject。坠机报告中有没有提示原因的信息…无效地址或其他什么?没有,我看不出来。我真的不明白。如果没有选择任何内容,该方法可能会崩溃?如果RemoteServiceFactory.serviceCall()是对后端服务的调用,那么它的completionHandler实际上不在主线程上,而是它是异步方法回调在线程1上,所以它在主线程上。我认为这不是问题,对吗?我建议你试试这个。。。我也犯了同样的错误,这个问题真的解决了吗?因为我用if-NSThread.isMainThread(){print(“Main Thread”)}测试了我是否在主线程上。有时它不会让您知道…只是尝试一下
 SVProgressHUD.show()
    let selectedRow = self.pickerView.selectedRowInComponent(0)
    let profileId = self.profiles[selectedRow].id
    RemoteServiceFactory.serviceCall().updateUser(profileId) { [weak self] (result, error) in

        SVProgressHUD.dismiss()
        guard let weakSelf = self else { return }

        if error != nil {
            weakSelf.showErrorWithMessage("error")
        } else {
            weakSelf.goToNextStep(weakSelf[selectedRow])
        }
    }