我有一个用例,我希望将特定类型的对象数组分配给类型为[Any]
的变量。考虑这些参考:
var genericArray : [Any]
let specificArray : [MyClass]
这会抛出编译器错误:
genericArray = specificArray
//Cannot assign value of type '[MyClass]' to value of type '[Any]'
这样做:
genericArray = specificArray as [Any]
//'Any' is not a subtype of 'MyClass'
这有效:
genericArray = specificArray.map { $0 }
但它看起来不那么优雅。有没有更好的方法来处理这项任务?
答案 0 :(得分:0)
如果你的genericArray只保存类类型的实例(不包括函数类型),那么只需使用var genericArray : [AnyObject]
。这将起作用,因为specificArray类型设置为MyClass,这是我猜的类