2017-01-17 3 views
0

У меня возникли проблемы с отчетом аварии из ткани я не получаю:Странная авария на FunctionCall когда кнопка повернутой

#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 

Когда я иду метод goToNext содержит только этот код:

SVProgressHUD.show() 
     let selectedRow = self.pickerView.selectedRowInComponent(0) 
     let profileId = self.profiles[selectedRow].id 
     RemoteServiceFactory.serviceCall().updateUser(profileId) { (result, error) in 
      SVProgressHUD.dismiss() 
      if let _ = error { 
       self.showErrorWithMessage("error") 
      } else { 
       self.goToNextStep(self.profiles[selectedRow]) 
      } 
     } 

Когда я проверяю это, он просто работает. Я не вижу, как это может произойти.

Это также странно, что существует метод @objc goToNext, потому что я объявил его без @objc.

Кто-нибудь знает об этом больше?

EDIT:

Я проверил, что обратный вызов обратно на основной поток через

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

Так что это не может быть проблемой, что HUD уволен.

+0

Я предполагаю, что @objc подразумевается, потому что ваш класс наследуется от NSObject. Есть ли сообщение в отчете о сбое, которое указывает причину ... неверный адрес или что-то еще? –

+0

Нет, я этого не вижу. Я действительно не понимаю. – user1007522

+0

Возможно, этот метод может произойти сбой, когда ничего не выбрано? – Sulthan

ответ

1

пытается уволить SVProgressHUD.dismiss() на MainThread, так как вы dimissing его в фоновом режиме сейчас и взаимодействие HUD в целом должно быть сделано в MainThread

dispatch_async(dispatch_get_main_queue { 
    SVProgressHUD.dismiss() 
}) 
+0

Обратный вызов находится в Thread 1, поэтому он находится в основном потоке. Я не думаю, что это проблема? – user1007522

+0

Я предлагаю вам попробовать это ... У меня была такая же ошибка, и это решило это – John

+0

Действительно? Потому что я тестировал, если NSThread.isMainThread() {print («Главная тема»)}, что я нахожусь в основном потоке. – user1007522

0

Я предполагаю, что ваш обратный вызов происходит после того, как контроллер просмотра неисправен.

Всякий раз, когда вы совершаете асинхронный вызов, вы должны преобразовывать себя в слабое я.

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]) 
     } 
    } 
Смежные вопросы