我想在[String:SomeClass]类型的Dictionary中存储一个更专业的类型。这是一些说明我的问题的示例代码(也可以在https://swiftlang.ng.bluemix.net/#/repl/579756cf9966ba6275fc794a上使用):
class Thing<T> {}
protocol Flavor {}
class Vanilla: Flavor {}
var dict = [String:Thing<Flavor>]()
dict["foo"] = Thing<Vanilla>()
它产生错误ERROR at line 9, col 28: cannot assign value of type 'Thing<Vanilla>' to type 'Thing<Any>?'。
我尝试过强制转换,Thing<Vanilla>() as Thing<Flavor>但是会产生错误cannot convert value of type 'Thing<Vanilla>' to type 'Thing<Flavor>' in coercion。
我也尝试将Dictionary定义为type,[String:Thing<Any>]但这也没有任何改变。
如何在Thing不求助于平原的情况下创建不同s 的集合[String:AnyObject]?
我还应该提到该类Thing不是我定义的(实际上是关于BoltsSwift Task的),因此创建Thing没有类型参数的基类的解决方案不起作用。
皈依舞
Smart猫小萌
婷婷同学_