NSXPCInterface构造函数无法识别Swift

时间:2015-11-02 15:06:55

标签: xcode protocols xpc swift2.1 nsxpcconnection

我在swift中创建了一个XPC服务,我创建了我的协议:

protocol MyProtocol {

func myFunc()

}

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

/// 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)的值。协议' (又名' MyProtocol.Protocol')预期参数类型'协议'

任何人都可以帮我解决这个错误吗?

1 个答案:

答案 0 :(得分:3)

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

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

您还必须在协议声明中添加@objc

@objc protocol MyProtocol {
    // ...
}