我正试图为一个NSXPCInterface构建一个协议,我正面临着一个奇怪的问题。
我创建了一个协议:
public protocol AProtocol {
//functions in here
}当我想把它添加到exportedInterface of NSXPCConnection,
let newConnection: NSXPCConnection
newConnection.exportedInterface = NSXPCInterface(with: AProtocol.self)我发现了一个奇怪的错误:
Cannot convert value of type 'AProtocol.Protocol' to expected argument type 'Protocol'发布于 2018-09-29 12:52:42
我不知道原因,但它的作用,试试这个。在@objc之前添加protocol
@objc public protocol AProtocol {
//functions in here
}不要忘记初始化NSXPCConnection
编辑:从这里中找到原因
"@objc“,它将协议公开给目标c运行时,并允许我们将任何”协议类型“作为参数传递
发布于 2018-09-29 12:59:57
您传递给NSXPCInterface实例的协议必须是文档中描述的目标-C协议。
协议:这个接口所基于的目标-C协议.
所以你要做的就是用@objc标记@objc
@objc public protocol AProtocol {
}https://stackoverflow.com/questions/52568409
复制相似问题