我有一个模态视图控制器,具有两个操作:确认和取消。如果用户点击这两个按钮之一,则会发生某些事情,并且视图控制器将自动关闭。
我需要处理用户在一定时间间隔内不执行任何操作的情况。在这种情况下,应关闭视图控制器。我试图在viewDidLoad:
方法内添加以下指令:
// Timeout handling
[self performSelector:@selector(dismissViewController) withObject:self afterDelay:10.0];
我的
dismissViewController
选择器很简单,正如名称所建议的那样:- (void)dismissViewController {
[self dismissViewControllerAnimated:YES completion:nil];
}
无论如何,当时间到期时,我的应用程序崩溃了。我从控制台收到以下错误:
2015-12-29 12:57:00.082 Test[826:292764] *** Assertion failure in void _UIPerformResizeOfTextViewForTextContainer(NSLayoutManager *, UIView<NSTextContainerView> *, NSTextContainer *, NSUInteger)(), /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIFoundation/UIFoundation-432/UIFoundation/TextSystem/NSLayoutManager_Private.m:1551
2015-12-29 12:57:00.083 Test[826:292764] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Only run on the main thread!'
有人可以解释一下为什么吗?
最佳答案
试试这个:
[self performSelector:@selector(dismissViewController) withObject:nil afterDelay:10.0];