0
以外我有這樣NavigationController.pushViewController崩潰如果運行mainQueue/mainThread
SomeController *controller = [[SomeController alloc] init];
[self.navController setViewControllers:@[controller] animated:YES];
代碼如果non-main thread
運行此代碼,其被執行上面的代碼
期間的viewController
resignFirstResponder
然後應用程序崩潰如果在dispatch_async(dispatch_get_main_queue, ^{})
中運行此代碼;
然後它工作正常,沒有崩潰
爲什麼它會崩潰的第一種情況下?我認爲如果在非主線程中運行,那麼UI不會看到更改,但我沒有想到它會崩潰?
我懷疑UI代碼對於速度來說大多是無鎖的。如果你能夠從多個線程中調用它,它將不得不添加鎖定,在正常情況下,鎖定會使事情減慢。 – 2015-02-24 08:40:44