objective-c - 重置/重新初始化 NSXPCConnection?
问题描述
如果这是一个明显的问题,或者我在这里表现出完全缺乏知识(这是准确的),请提前抱歉。
- 操作系统:macOS (10.12+)
- IDE:Xcode (11)
- 使用:Cococa + Objective-C
我们正在与 C API 交互。该 API 在后台存储各种会话/环境信息。有特定的 API 调用需要完全重新启动 API,但完成此操作的唯一方法是完全关闭调用它的客户端应用程序(API 的行为类似于单例,无法重新初始化自身)。
我希望将 C API 包装在 XPC 服务中可以让我更优雅地关闭服务并重新启动它,这样我就可以避免重新启动整个客户端应用程序。
- 这是否是在 Cocoa 中思考这种需求的正确方式?
- 如果(如果)是,我将如何去做?我使用文件 -> 添加目标 -> XPC 服务向现有应用程序添加了一个简单的 XPC 服务。我可以调用 C API,所有工作都使用 NSXPCConnection 并从应用程序中点击适当的服务方法。不过,我对如何可能杀死/重新初始化 XPC 服务感到困惑。
- 有没有不同/更好的方法来看待这个?
欢迎任何方向/想法/批评
谢谢!
解决方案
我想我可以让它与 NSXPCConnection 一起使用。
在父应用程序仍在运行时跟进Kill XPC,我调用了 API 的 dispose-ish 方法,然后exit(0)
在 XPC 连接中的方法内部调用。
到目前为止,一切都很好!
推荐阅读
- c# - 连续相同的字符列表,我无法全部删除
- docker - docker-compose 使用 dockerfiles 运行 2 个服务,找不到任务“phx.server”,main.go:没有这样的文件或目录
- vb.net - VB.NET TCP 服务器/客户端 - 获取连接客户端的 IP
- wso2 - 如何执行 WSO2 用户身份验证
- assembly - 如何在蓝屏上打印文本?
- javascript - addEventListener("touchstart") 在手机上不起作用
- powershell - 无法执行 Import-Module Azure PowerShell 命令
- php - 如何用两列编写 Laravel Eloquent whereBetween 方法
- javascript - 特定锚标签的平滑滚动不适用于所有锚标签
- javascript - 递归模式js