我在设备上安装了较旧版本的应用。在我的新版本中,我不再使用.xib文件,因为它从复杂的东西变为表格视图,我可以在代码中实例化它。
然而,当我在设备上构建并运行时,它仍会崩溃,因为它仍然试图从旧应用程序中包含的.xib文件加载控制器,并且抱怨UILabel缺少键/值对。
例如:
SomeViewController.h(UITableViewController)
SomeViewController.m
SomeViewController.xib(在新版本中删除)
SomeViewController *controller = [[SomeViewController alloc] initWithStyle:UITableViewStylePlain];
- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self)
{
}
return self;
}
即使我调用“initWithStyle”,它仍然会尝试加载预先存在的.xib!
我目前的解决方案是使用空白的UITableView创建SomeViewController.xib。
我怀疑,当用户从应用程序商店更新应用程序时,它将覆盖整个应用程序而不会遗漏任何内容。
这是真的吗?应用更新是否会覆盖现有应用,还是会留下延迟的.xib文件?
现在我必须使用其他所有视图测试旧版本,以确保没有其他问题延迟。
阅读NIB上的开发人员文字: http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/CocoaNibs.html
也许我发现了一个错误?
另一个选择是我将类重命名为SomeController,以避免自动加载相关的.xib文件。
答案 0 :(得分:2)
Apple在以下有关测试iOS应用更新的技术说明中解决了此问题:
答案 1 :(得分:1)
两项建议: