铸造混凝土类型为Any?

时间:2015-05-20 14:34:56

标签: ios swift

我有一个用例,我希望将特定类型的对象数组分配给类型为[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 }

但它看起来不那么优雅。有没有更好的方法来处理这项任务?

1 个答案:

答案 0 :(得分:0)

如果你的genericArray只保存类类型的实例(不包括函数类型),那么只需使用var genericArray : [AnyObject]。这将起作用,因为specificArray类型设置为MyClass,这是我猜的类