首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用XPC创建Daemon / UI连接

使用XPC创建Daemon / UI连接
EN

Stack Overflow用户
提问于 2017-12-27 23:12:07
回答 2查看 1.3K关注 0票数 1

我的平台包含基于混合C++/objective代码的系统宽守护进程,该代码由launchd根据plist文件操作,配置适当,驻留在/Library/LaunchDaemons/中。

另一方面,它包含使用故事板构建的基于UI的应用程序,该应用程序从后台运行,定义为LaunchAgent (这意味着它也由launchd使用/Library/LaunchAgents/中的plist文件操作)

现在,我希望在它们之间建立一个uni定向连接,以便Daemon可以发送消息,由UI应用程序显示。消息可以包含字符串/数字或任何其他可显示的数据。

我已经使用XPC连接检查了这个选项,并将NSXPCConnection添加到我的守护进程中,该守护进程与在UI端使用NSXPCListener实现的服务器共享一个专用协议。

我很乐意得到关于我的设计的评论和建议,特别是在以下几个方面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1. Should I implement the UI as launchAgent 
(I need to support multi-users, meaning that the daemon can send
different messages to each UI instance per user) 

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
2. should I consider using dedicated `XPC service`. 
Seems like Xcode has option to create XPC service, 
but I don't know how should I "attach" the UI code inside ... 

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
3. is it possible to have XPC client which runs objective-c 
code while the XPC listener will run on swift code ? 

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-21 07:20:45

  1. 如果您将UI应用程序作为常规应用程序或启动代理来实现,这并不重要。选择更适合的。
  2. 您是否考虑拥有一个UI应用程序和一个XPC服务?这应该能行。
  3. 它适用于Swift、Objective和混合语言项目。

现在,我希望在它们之间建立一个uni定向连接,以便Daemon可以发送消息,由UI应用程序显示。

这对我没用。根进程无法初始化与用户进程的通信。但反之亦然:如果连接是由UI启动的(在UI中实例化NSXPCConnection,在Daemon中实例化侦听器)。

票数 1
EN

Stack Overflow用户

发布于 2018-01-12 10:10:43

我认为你应该阅读苹果的Daemons和服务编程指南:ref/doc/uid/10000172i-SW1-SW1

  1. UI可能应该作为与守护进程通信的常规应用程序来完成。
  2. 我认为XPC服务不适合您的需要,因为您说您需要支持多个用户。

XPC服务是私有的,并且只对包含它的主应用程序可用。

  1. 是。您可能会使用NSXPCConnection类,它可以在基金会中找到,它与Swift和Objective兼容。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48003207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文