4

我正在快速创建 XPC 服务,并创建了我的协议:

protocol MyProtocol {

func myFunc()

}

当我尝试通过使用协议初始化 NSXPCInterface 的新对象来设置导出对象实现的接口(在我的 main.swift 中)时,出现错误:

/// This method is where the NSXPCListener configures, accepts, and resumes a new incoming NSXPCConnection.
func listener(listener: NSXPCListener, shouldAcceptNewConnection newConnection: NSXPCConnection) -> Bool {
    // Configure the connection.
    // First, set the interface that the exported object implements.
    newConnection.exportedInterface = NSXPCInterface(MyProtocol)

错误是:无法将类型“(MyProtocol).Protocol”(又名“MyProtocol.Protocol”)的值转换为预期的参数类型“Protocol”

谁能帮我解决这个错误?

4

1 回答 1

4

要引用协议的类型,您需要.self在其上使用:

 newConnection.exportedInterface = NSXPCInterface(withProtocol: MyProtocol.self)

您还必须添加@objc到您的协议声明中:

@objc protocol MyProtocol {
    // ...
}
于 2016-05-02T22:51:20.987 回答