我正在尝试为符合多个协议的UITableViewCell的委托属性定义一个typealias
。这就是我要做的,Swift抱怨我的语法错误:
// The typealias definition
typealias CellDelegate = AnyObject<UIPickerViewDataSource, UIPickerViewDelegate>
// In my UITableViewCell subclass:
weak var delegate: CellDelegate?
“无法专门化非泛型类型AnyObject”是我得到的错误。我怎样才能正确地做到这一点?
发布于 2015-04-18 17:05:08
如果要声明多协议:
protocol<A, B>
发布于 2016-09-15 14:30:11
在Swift 3中,语法发生了变化。
直到Swift 2.3:typealias CellDelegate = protocol<UIPickerViewDataSource, UIPickerViewDelegate>
从Swift 3:typealias CellDelegate = UIPickerViewDataSource & UIPickerViewDelegate
开始
发布于 2015-04-18 16:48:21
我不明白您为什么要这样输入weak var delegate: <CellDelegate>?
,为什么不输入weak var delegate: CellDelegate?
问题是AnyObject是通用的。在第一行中,您试图使AnyObject成为非泛型,但事实并非如此。
你最好创建一个类来实现它们(数据源和委托)。
https://stackoverflow.com/questions/29714773
复制相似问题