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

时间:2016-02-04 08:29:33

标签: ios swift uipageviewcontroller

我正在处理使用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}>'

这个错误非常难以重现。一个字面上需要在UIPageViewController上多次触摸和滚动才能导致此崩溃 感谢您的时间和帮助。

1 个答案:

答案 0 :(得分:0)

您应将setViewControllers:direction:animated:completion:代码放在dispatch_async block内。它为我工作。 https://stackoverflow.com/a/24749239