由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'队列中的重复状态'

问题描述 投票:7回答:1

我正在开发一个使用UISlideViewController的项目。我知道这可能是一个重复的问题,但关于这个主题之前的帖子没有帮助我。我有一个特定的问题,因为我设法理解。我的应用程序崩溃了。我之前已经阅读过,将所有工作与UI放在主线程中非常重要。这是代码:

pageViewController.setViewControllers([viewController],
                    direction: direction,
                    animated: animated,
                    completion: { completed in
                        dispatch_async(dispatch_get_main_queue()) {
 ...

我得到的错误是下一个:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Duplicate states in queue'
*** First throw call stack:
(0x183fd1900 0x18363ff80 0x183fd17d0 0x18494499c 0x1894dc9f4 0x1894dcdec...)

进一步测试我也在同一行代码上得到这个错误:

    *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'No view controller managing visible view <UITableView: 0x12744aa00;
frame = (0 0; 375 515);
    clipsToBounds = YES; autoresize = W+H; 
    gestureRecognizers = <NSArray: 0x12836cf60>; 
    layer = <CALayer: 0x1286226b0>;
    contentOffset: {0, 0}; contentSize: {375, 291}>'

这个bug很难重现。一个字面上需要在UIPageViewController上多次触摸和滚动才能导致此崩溃。 谢谢你的时间和帮助。

ios swift uipageviewcontroller
1个回答
0
投票

你应该将setViewControllers:direction:animated:completion:代码放在dispatch_async block中。它对我有用。 https://stackoverflow.com/a/24749239

© www.soinside.com 2019 - 2024. All rights reserved.