objective-c - 在我的 Swift 应用程序中使用来 self 的 XPC 服务的 Objective-C 协议(protocol)

标签 objective-c xcode swift nsxpcconnection

我有一个用 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/

相关文章:

objective-c - Cocos2d 一个CCSprite的不同 anchor

ios - 为什么我不能从另一个类访问我的 UIView 的类属性?

ios - 在 mapView 中加载区域的所有图 block

swift - 线程 1 : EXC_BAD INSTRUCTION with NSUserDefaults

iphone - 即使在静音模式下也能在 iPhone 上播放声音

ios - iPhone 7或7 Plus使用becomeFirstResponder出现严重白屏bug

ios - 在 Xcode 6 中更改文件夹位置时无法构建

iphone - XCode - 一个文件中索引失败

iphone - 如何在同一台计算机上开发生产 iPhone 应用程序和 iPad 应用程序?

swift:通过引用传递