我有一个只有 UIViewController
的协议(protocol)
protocol VCProtocol where Self: UIViewController {}
我有一个带有 VCProtocol
参数的函数。在函数内部我无法访问 UIViewController
func testFunction(vcProtocol: VCProtocol) {
// vcProtocol.view ‼️ error: Value of type 'VCProtocol' has no member 'view'
}
尽管我可以将协议(protocol)参数转换为 UIViewController
,然后像这样访问该属性:
func testFunction(vcProtocol: VCProtocol) {
(vcProtocol as! UIViewController).view
}
是这样吗?我们有更好的方法吗?
最佳答案
您可以使用&
运算符来组合协议(protocol)
protocol VCProtocol where Self: UIViewController {}
func testFunction(vcProtocol: VCProtocol & UIViewController) {
let view = vcProtocol.view
}
关于ios - View Controller only 协议(protocol)无权访问 View Controller 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55292679/