【发布时间】:2017-06-26 23:21:10
【问题描述】:
我仍在学习如何使用对象数组来实现具有关联类型的协议。
我有以下协议:
public protocol Word : Equatable, Hashable { // compiles
associatedtype WordType : Equatable
var moreWords: [WordType] { get }
}
public protocol WordDataSource { // compiles
associatedtype SomeWord : Word
func findWord(spelling: String) -> SomeWord?
}
我有 WordA、WordB 和 WordC 都实现了 Word 和子类化 NSObject
基本上,我想使用实现 Word 类的不同类来实现数据源协议。这是我想写的那种代码,但显然它不能编译。
class MyDataSource : WordDataSource {
func findWord(spelling: String) -> SomeWord? {
if conditionA {
return WordA()
}
if conditionB {
return WordB()
}
if conditionA {
return WordC()
}
}
}
这在 Swift 中是否可行?我应该写什么来完成这项工作?
非常感谢您的帮助!
【问题讨论】:
标签: swift protocols associated-types