- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试通过单元测试对我的应用进行一些压力测试,但遇到了一些问题。下面是我的代码:
//Stress test api and core data
__block BOOL done = NO;
for (int i = 0; i < 100 ; i++) {
DLog(@"in here");
[viewController createList:testList
success:^(Lists *list) {
DLog(@"in success block : %d", i);
STAssertNotNil(list, @"list is not nil");
done = (i == 99);
}
failure:^(NSError *error) {
DLog(@"in fail block");
}
];
}
@autoreleasepool {
while (!done) {
// This executes another run loop.
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
}
}
问题是,经过几次迭代后,我在线上得到了一个错误的访问错误
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
因为 this post,我已经将 while
循环放在 @autorelease
中.我在项目中使用 ARC,所以我不知道这是否会导致问题......?我需要使用 NSRunLoop
强制单元测试等待 block 完成。
有人遇到过这个问题吗?
最佳答案
在类似的情况下,我采用了不同的方法,但效果很好。我所做的是在主测试中,使用 dispatch_group_async 到普通队列,然后在主测试中等待组完成。这工作得很好,你不会弄乱单元测试的运行循环。
如果出于某种原因上述内容 Not Acceptable ,则尝试不使用任何自动释放池以查看是否可行如果可行,则将其移至 while 中。使用 ARC,对自动释放池的需求大大减少。您也可以使用 Instruments 观察内存使用情况。
关于ios - [[NSRunLoop currentRunLoop] runMode :* beforeDate:*]; 中的 BAD EXC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17032356/
我对 NSRunLoop 的 runMode:beforeDate 方法的正确使用有疑问。 我有一个辅助的后台线程,用于处理收到的委托(delegate)消息。 基本上,我有需要在后台线程上执行的进程
正如标题所说,NSRunLoop 的 runMode:beforeDate: 不等待。我应该怎么做才能让线程等待 NSRunLoop。 我正在后台线程上运行一个方法: [self performSel
崩溃发生在以下代码中: void CocoaCommRequest::launchSync() { launchAsync(); while (![_delegate finished
我最近发现,在等待我的 NSURLConnections 通过时,如果我告诉等待的线程去做,它会工作得更好: [[NSRunLoop currentRunLoop] runMode:NSDefault
我的应用程序与 iOS5 b7 和 GM 版本的兼容性有问题。 问题出现在下一行代码中: do { [[NSRunLoop currentRunLoop] runMode:NSDefaultR
我正在尝试通过单元测试对我的应用进行一些压力测试,但遇到了一些问题。下面是我的代码: //Stress test api and core data __block BOOL done = N
在 UIViewController viewDidAppear 事件中,我想从网络服务中获取一些数据。代码如下: - (void)viewDidAppear:(BOOL)animated { [s
我有一些关于 NSRunLoop 的问题。当运行如下代码时,主线程似乎停止了,它不会在 while 循环之后运行代码。我想知道什么时候[[NSRunLoop currentRunLoop] runMo
我是一名优秀的程序员,十分优秀!