【问题标题】:Why is my application terminating in the middle of unit tests?为什么我的应用程序在单元测试过程中终止?
【发布时间】:2010-09-03 00:07:29
【问题描述】:

问题

我运行我的单元测试。在某一时刻,我等待使用:

[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:1]];

NSOperationQueue 为空。当我的应用程序到达这条线时,它会立即终止。它与其他测试运行完全相同的行。最近所有测试都运行良好。它有时也会在启动时立即终止我的应用程序。

到底发生了什么?

【问题讨论】:

    标签: objective-c cocoa terminate nsoperationqueue nsrunloop


    【解决方案1】:

    我已经发布了这个给我一个答案,以防其他人遇到同样的问题,因为我已经花了一整天的时间在这个问题上,并且感谢 git 的真棒,终于找到了这个问题。

    我补充说:

    -(BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender {
        return YES;
    }
    

    进入我的应用程序委托,因为我希望我的应用程序在窗口关闭时终止。事实证明,这是明显随机终止的原因。

    我确实在启动时隐藏了我的窗口,所以我只能认为这是导致应用程序立即终止的原因,尽管并非每次启动实际应用程序时都会发生这种情况。

    我只知道它在那个单元测试中一直终止,这让我认为这与这段代码或我的测试有关。不是。

    我摆脱了上面的行,现在一切正常。

    【讨论】:

    • “隐藏”是指关闭(即发送close 消息)?如果是这样,这很重要,即使您没有释放窗口(例如,关闭时释放)。这可能是触发应用程序看到终止的延迟执行;延迟执行通过运行循环。
    • 隐藏,我的意思是orderOut:。所以我很困惑为什么会这样。
    猜你喜欢
    • 2020-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多