В следующем коде я хочу проверить, является ли x
SpecialController
. Если это так, я хочу получить currentValue
как SpecialValue
. Как ты делаешь это? Если не с литой, то другой метод.
Последняя строка не будет компилироваться. Ошибка: Протокол "SpecialController" может использоваться только в качестве общего ограничения, поскольку он имеет собственные или связанные требования типа.
protocol SpecialController {
associatedtype SpecialValueType : SpecialValue
var currentValue: SpecialValueType? { get }
}
...
var x: AnyObject = ...
if let sc = x as? SpecialController { // does not compile