swift - 使用变量类型进行类型转换

标签 swift swift3 casting

是否可以将对象转换为存储在成员变量中的类型?

我已经试过了:

let targetClass = type(of: MyTargetClass)
...

if anyObject is targetClass { // ERROR: use of undeclared type 'targetClass'
let test = anyObject as! targetClass // ERROR: use of undeclared type 'targetClass'
}

但它不起作用,因为它说“使用未声明的类型‘targetClass’”

最佳答案

没有。类型转换是编译时的事情。它让编译器知道哪些方法可用以及如何进行链接。

您可以使用 Mirror在运行时收集有关您的对象的信息,但看起来动态调用方法仍然只能在从 NSObject 派生的类上完成。

关于swift - 使用变量类型进行类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44386754/

相关文章:

arrays - 字典数组中的增量值

ios - Swift - SharkORM 忽略并加密属性

ios - NSURLSession.sharedSession().dataTaskWithRequest 不起作用

ios - 如何从核心数据迁移到Firebase

Swift 语法相关。我该如何写得更好?

Swift:语法翻译

ios - Swift 3/Xcode 8 端口后的 Swift 编译器段错误

ios - 更改对象的局部坐标(swift3)

java - int 可以增加一个 double 值

sql - 在postgresql 9.1.3中执行类型转换功能与在postgresql 8.2.22中不同。串联无法正常工作