好的。我环顾四周,并没有找到我的问题的确切答案。
我正在尝试在单元测试(不是主运行)中测试超时处理程序。
问题似乎[NSRunLoop mainRunLoop]
是在单元测试中没有像在标准运行中那样运行。
我以这种方式超时:
NSTimer *pTimeoutHandler = [NSTimer
timerWithTimeInterval:2.0
target:self
selector:@selector(timeoutHandler:)
userInfo:nil
repeats:NO
];
[[NSRunLoop mainRunLoop] addTimer:pTimeoutHandler forMode:NSRunLoopCommonModes];
这适用于标准运行。这是设置超时的推荐方式。
但是,在测试运行中,这不起作用。该timeoutHandler:(NSTimer*)timer
例程永远不会被调用。
看起来好像有什么东西在干扰运行循环。
有什么办法让我在运行和单元测试中都可以使用超时?