我试图让这个runloop永远运行(如果不是永远至少一天)我正在使用以下函数进行runloop[self.runLoop runUntilDate:[NSDate dateWithTimeIntervalSinceNow:100000]];
问题是应用程序在 3 小时后崩溃。有人可以帮我吗?
我试图让这个runloop永远运行(如果不是永远至少一天)我正在使用以下函数进行runloop[self.runLoop runUntilDate:[NSDate dateWithTimeIntervalSinceNow:100000]];
问题是应用程序在 3 小时后崩溃。有人可以帮我吗?
如果您希望它永久运行(并假设您已附加计时器和/或输入源),您可以使用
[self.runLoop run];
如果您想保留当前的构造,可以使用:
[self.runLoop runUntilDate:[NSDate distantFuture]];
我已经看到 Apple 使用了以下模式(例如Threading Programming Guide的清单 3-14 ;我还看到NSOperation
对象在调用它们想要等待完成的异步操作时使用此构造):
// Let the run loop process things.
do
{
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode
beforeDate:[NSDate distantFuture]];
}
while ( ... ); // in here you have whatever condition you want to check for
试试[NSDate distantFuture]
。来自文档:“一个 NSDate 对象,表示遥远未来的日期(以世纪为单位)。”