首页 > 解决方案 > swift - 如何将 Any 转换为其他类并分配泛型类型

问题描述

我有一个泛型类型 A

class A<T> {
....
}

和其他类 B 有一些属性类型是 A

class B {
var propOne: A<String>
var propTwo: A<Int>
...
}

现在使用Mirror扫描所有属性,我需要将值转换为A

var mineB = B(...)
let mirror = Mirror(reflecting: mineB)
for case let (label?, value) in mirror.children {
    ...
    let objA = value as? A
}

但是有编译器错误是Generic parameter 'T' could not be inferred in cast to 'CSRObject<_>'

更新的时候就好了let objA = value as? A<Swift.String>

但这意味着我比较所有类型

怎么方法让我快速施法?

标签: swiftgenericscasting

解决方案


推荐阅读