ios - 如何在 Swift 中将 UIViewController 转换或类型转换为 AnyClass

标签 ios swift casting ios8

我只想将任何 UIViewController 子类转换为 AnyClass 以便从 isKindOfClass 方法进行检查,因为此方法采用 AnyClass 作为参数。

最佳答案

您可以在 swift 中使用 asis 关键字,而不是使用旧的 Objective-C API。

if let controller = yourViewController as? SomeClass {
    // use controller, is already casted to SomeClass
}

if yourViewController is SomeClass {
    let controller = yourViewController as! SomeClass
    // use controller now
}

添加: 如果内存地址不同,则对象不相等。尝试检查我在答案中提到的 topViewController 类型。

if let topViewController = appDelegateObj.navigationController.topViewController as? YOUR_VIEW_CONTROLLER_CLASS {
     // do something 
}

关于ios - 如何在 Swift 中将 UIViewController 转换或类型转换为 AnyClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37966962/

相关文章:

java - 如何在 java 中转换泛型列表类型?

r - 如何在 POSIX 中提取小时、分钟和秒(忽略日期)

ios - 提交到应用商店时可以设置多低的部署目标是否有限制?

ios - 为适用于不同对象的属性定义宏?

android - Cordova 3.3.1-0.1.2 (Phonegap) 插件不工作

ios - Swift Firebase UICollectionView - 图像缩略图不一致

.net - 当我定义了隐式强制转换时,为什么Linq Cast <T>操作失败?

ios - 适用于 iOS 和通用链接的 Google 应用索引

ios - 为什么当附加到 nil 图像时,帧修饰符仍然会影响其他 View ?

ios - 如何快速打开和关闭手电筒?