【发布时间】:2018-03-21 01:19:01
【问题描述】:
于是我写了一个简单的协议:
protocol PopupMessageType{
var cancelButton: UIButton {get set}
func cancel()
}
并有一个自定义视图:
class XYZMessageView: UIView, PopupMessageType {
...
}
然后我现在有:
class PopUpViewController: UIViewController {
//code...
var messageView : CCPopupMessageView!
private func setupUI(){
view.addSubview(messageView)
}
}
但我想做的是:
class PopUpViewController: UIViewController {
//code...
var messageView : PopupMessageType!
private func setupUI(){
view.addSubview(messageView) // ERROR
}
}
我得到的错误:
无法转换“PopupMessageType!”类型的值到预期的论点 输入“UIView”
编辑: 我正在使用 Swift 2.3!
【问题讨论】:
-
如果让 popupView = messageView as? UIView { view.addSubview(popupView) } else { // 处理 messageView 不是 UIView 的情况 }
-
Swift 2.3 已被任何当前工具弃用且不受支持...为了您自己,请升级。
-
RIP 我是怎么认识你妈妈的 :(
标签: ios swift swift2 swift-protocols protocol-oriented