View Controller 更新后继续加载xib文件

Posted

技术标签:

【中文标题】View Controller 更新后继续加载xib文件【英文标题】:View Controller continues to load xib file after update 【发布时间】:2013-10-24 16:24:04 【问题描述】:

我已经为我的应用创建了一个更新,它使用一个 xib 文件来加载一个特定的视图控制器。在更新中,我删除了 xib 并从控制器的源文件中删除了所有插座。现在我以这种方式创建我的控制器:

RRVacancySearchViewController *vacancySearchController = [[RRVacancySearchViewController alloc] initWithStyle:UITableViewStylePlain];

当我在 iPhone 上运行更新版本而不是旧版本时,此控制器无法加载并出现错误:

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<RRVacancySearchViewController 0x1fdaaa20> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key _historyTableView.'

但是我没有_historyTableView了。它是从一个旧的xib 文件加载的,我不想再使用它了。

我应该怎么做才能让 iPhone 完全忘记 xib 并且不使用它?

【问题讨论】:

从设备中删除应用程序。 Xcode 在部署期间不会删除文件。如果要测试更新过程,则必须使用 ad hoc 部署。你不能只在 Xcode 中点击 Run。 这是正确答案。创建 Ad Hoc 版本后,问题停止发生。从 Xcode 安装更新与测试更新无关。 【参考方案1】:

删除项目中的.xib 并删除对它的所有引用。还要在您的代码中确认您不是在寻找_historyTableView

【讨论】:

【参考方案2】:

您的 xib 文件中似乎仍有一个 IBOutlet 引用 _historyTableView

【讨论】:

【参考方案3】:

有时模拟器不会刷新新的 xib 文件/图像以加快测试过程。 这个问题我遇到过很多次,我找到的唯一解决方案是重置模拟器,手动删除应用程序,然后重新安装。

如果你需要检查不同的,你必须构建两个不同的 ipa 并手动安装它们。

【讨论】:

以上是关于View Controller 更新后继续加载xib文件的主要内容,如果未能解决你的问题,请参考以下文章

更新 ComboBox 的项目后发生 NullPointerException

尝试从 tableView 加载图像时,Swift View Controller 空白

停止从不同的View Controller更新位置

在 XIB 中连接 UIView 并使用 Story board 中的 View Controller 加载它

如何在不将 nib 名称指定为字符串的情况下使用 nib 加载 View Controller 子类?

View & Controller 一些方法的执行顺序