【问题标题】:Reset / Re-initialize NSXPCConnection?重置/重新初始化 NSXPCConnection?
【发布时间】:2021-06-03 09:05:58
【问题描述】:

如果这是一个明显的问题,或者我在这里证明完全缺乏知识(这是准确的),请提前道歉。

  • 操作系统:macOS (10.12+)
  • IDE:Xcode (11)
  • 使用:Cococa + Objective-C

我们正在与 C API 进行交互。该 API 在后台存储各种会话/环境信息。有一些特定的 API 调用需要完全重启 API,但完成此操作的唯一方法是完全关闭调用它的客户端应用程序(API 的行为类似于单例,无法重新初始化自身)。

我的希望是,将 C API 包装在 XPC 服务中可以让我更优雅地关闭服务并重新启动它,这样我就可以避免重新启动整个客户端应用程序。

  1. 在 Cocoa 中考虑这种需求的方式是否正确?
  2. 如果(如果)是,我将如何去做?我使用文件 -> 添加目标 -> XPC 服务向现有应用程序添加了一个简单的 XPC 服务。我可以调用 C API,所有工作都使用 NSXPCConnection 并从应用程序中点击适当的服务方法。不过,我对如何可能杀死/重新初始化 XPC 服务感到困惑。
  3. 是否有不同/更好的方式来看待这个问题?

欢迎任何方向/想法/批评

谢谢!

【问题讨论】:

    标签: objective-c xcode cocoa nsxpcconnection


    【解决方案1】:

    认为我让它与 NSXPCConnection 一起工作。

    跟进Kill XPC when parent app is still running,我尽我所能调用API 的dispose-ish 方法,然后在XPC 连接中的方法内部调用exit(0)

    到目前为止,一切都很好!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-01
      • 1970-01-01
      • 2012-01-07
      • 1970-01-01
      相关资源
      最近更新 更多