swift2 NSXPCInterface构造函数无法识别Swift中的协议

4ktjp1zp  于 2022-11-06  发布在  Swift
关注(0)|答案(1)|浏览(254)

我在swift中创建了一个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'
有人能帮我解决这个错误吗?

63lcw9qa

63lcw9qa1#

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

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

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

@objc protocol MyProtocol {
    // ...
}

相关问题