gpt4 book ai didi

ios - 在 Swift 中转换从 UINavigationController 中提取的 viewController

转载 作者:可可西里 更新时间:2023-11-01 01:06:49 27 4
gpt4 key购买 nike

我在 UINavigationController 中有 UIViewController。这个 View Controller 实现了一个协议(protocol)。

我正在尝试获取导航堆栈的第一个 Controller 并对其进行转换:

if let vc = _navigationStack.viewControllers?[0] as? ExplorerInterface {
return vc
}

但我收到错误:Cannot downcast from 'AnyObject?'到非@objc 协议(protocol)类型“ExplorerInterface”

我正在寻找一种无需将 @objc 关键字添加到我的协议(protocol)中即可解决此问题的方法(因为此协议(protocol)包含元组之类的快速类型和​​ @objc关键字与 Swift 类型不兼容)

最佳答案

形成 Apple 文档:

You can check for protocol conformance only if your protocol is marked with the @objc attribute. Even if you are not interoperating with Objective-C, you need to mark your protocols with the @objc attribute if you want to be able to check for protocol conformance.

检查 Swift Protocols

关于ios - 在 Swift 中转换从 UINavigationController 中提取的 viewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24955355/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com