我有一个用 Swift 编写的应用程序,完全用 Swift 编写,从来没有 Obj-C 类,没有 Obj-C 文件或桥接 header 。
为了在不影响我的应用程序权利的情况下添加一些功能,我尝试添加一个 XPC 服务——我在 Xcode 中创建了它,Xcode 中的 XPC 服务模板仅为 Obj-C。
很好,我在 Obj-C 中编写了我的服务,但现在当我想通过 NSXPCConnection
调用我的服务时,我必须设置它的接口(interface),然后执行此操作我需要在我的 Swift 应用程序代码中引用我为 XPC 目标编写的 Obj-C 协议(protocol)。
我该怎么做?我不能只将“Protocol.h”添加到我的应用程序目标,它没有 C header 的规则。我在这方面发现的所有其他评论似乎只适用于链接到框架或共同目标中的协议(protocol)......
最佳答案
好的,所以我找到了解决方案。
1) 删除了样板 Obj-C 服务类和协议(protocol)文件。
2) 快速编写了我的协议(protocol)和公开的对象类。确保这些可以导出到 Obj-C。
3) 将 protocol.swift 文件添加到我的应用程序的目标中。将 #import "Service-Swift.h"
添加到我的服务的 main.m
。
所以现在我的 XPC 对象是用 Swift 实现的,我的对象协议(protocol)是用 swift 实现的,唯一的非 swift 文件是我的 XPC 的 main。
关于objective-c - 在我的 Swift 应用程序中使用来 self 的 XPC 服务的 Objective-C 协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32464727/