Swift View Controller 向下转换

标签 swift xcode6 downcast

我认为以下内容会用我的 HomeViewController 填充我的 home 变量

var home = self.parentViewController!.parentViewController! as HomeViewController;

相反,我收到以下编译错误“使用未声明类型的 HomeViewController”,尽管它肯定存在并出现在自动完成弹出窗口中。

最佳答案

XCode6 经常显示错误的错误信息。这是一个实例变量吗?可能是 parentViewController 没有在初始化时设置(事实上它是一个隐式展开的可选强烈暗示这一点)。如果这是在函数中,我会在 if let 语句中执行此操作,以便我们更好地了解正在发生的事情。像这样的东西:

if let homeVC = self.parentViewController?.parentViewController as? HomeViewController {
    self.home = homeVC
}

这至少会给我们一个更好的调试机会。连续两个 ! 可能意味着您没有完全尊重这些声明试图告诉您的内容。

关于Swift View Controller 向下转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27112457/

相关文章:

ios - 如何读取healthKit心率数据?

ios - 如何限制API调用次数?

ios - 如何在 UITableViewDataSource 中重新加载数据

c++ - 从(基对象的基引用)到(派生类引用)的静态转换

java - 从外部库向类添加 Parcelable 接口(interface)

ios - 仅在 iPhone 上出现 dateFormatter dateFromString 错误

ios - XCode 6 中两个按钮可以相互接触吗?

ios - XCode 6 模拟器忽略主机文件更改

terminal - Xcode 6 - 如何从终端在 IOS Simulator Mobile Safari 中打开 Url?

java - 为什么向下转换抛出异常?