gpt4 book ai didi

ios - 在 XCTests 中使用 [NSOperationQueue mainQueue]

转载 作者:可可西里 更新时间:2023-11-01 03:58:16 24 4
gpt4 key购买 nike

我正在使用 XCTest 测试我的一部分代码,它还在主队列上添加了 NSOperations。它看起来像这样:

[NSOperationQueue mainQueue] addOperationAsBlock:^{
//一些代码发生在这里
}];

代码在设备或模拟器中运行应用程序时运行,但在运行单元测试时根本不运行(我无法到达 block 第一行的调试点)。

调用:

[NSOperationQueue mainQueue] waitUntilAllOperationsAreFinished];

也没有帮助。

有什么建议吗?我想我缺少一些初始化队列的代码。

* 编辑 *

感谢您的回答,为了完整性,我添加了结果代码:

// add as many operations as you'd like to the mainQueue here
__block BOOL continueCondition = YES;
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
// this should be the last operation
continueCondition = NO;
}];
while (continueCondition) {
[[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
} // continue your test here

这是可行的,因为 mainQueue 保证是非并发的,所以添加的最后一个操作将是最后一个执行的 - 这样您甚至不必更改代码来停止测试循环。

最佳答案

关于ios - 在 XCTests 中使用 [NSOperationQueue mainQueue],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19523105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com