Objective-C控制台应用程序,在连接到Redis时永远不会终止

时间:2016-07-17 23:33:26

标签: objective-c swift multithreading console-application

我有一个Objective-C / Swift控制台应用程序,我正在更新以连接到Redis(pub / sub)。但是,应用程序甚至在连接到Redis服务器之前就会退出。

如何让应用程序(主线程)基本上永远运行而不会阻塞后台线程(NSOperationQueue)?

我在C#中开发了类似的东西并使用了" Console.Read()"功能基本上等待永远。我尝试使用相同的方法来使用" scanf(...)"但这似乎阻止了后台线程的执行。

我发现了这个问题,Console App Terminating Before async Call Completion代表C#。 Objective-c / Swift中有类似的内容吗?

非常感谢任何输入。

谢谢!

1 个答案:

答案 0 :(得分:0)

 [[NSRunLoop currentRunLoop] run];

在主线程上执行此操作。它永远不会回来。

如果您要在运行循环的上下文中调用某些代码,请使用dispatch_after()performAfter:...或其中的变体。