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

Objective-C console app that will never terminate while connected to Redis

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

我怎样才能让应用程序(主线程)基本上运行永远不阻塞后台线程(NSOperationQueue)?

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

我找到了这个问题,Console App Terminating Before async Call Completion 用于 C#。 Objective-c/Swift有没有类似的东西?

如有任何意见,我们将不胜感激。

谢谢!

 [[NSRunLoop currentRunLoop] run];

在您的主线程上执行此操作。永远不会 return.

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