我们有一个已经在应用商店中使用的应用。
现在我们计划通过以编程方式创建所有视图来减少应用程序的大小。删除相应的NIB(XIB)文件。
即使删除了笔尖,问题仍然存在。没有被要求,应用程序的更新版本仍然指向旧的笔尖,这样的问题出现了(这个图像只是一个例子,问题在整个应用程序中是一致的):
基本上,IB和&代码。
我们到目前为止唯一的解决方案是删除&重新安装应用程序,但要求所有用户这样做是不可取的。此外,它还会删除本地存储的应用数据,这是我们在此尝试避免的主要问题。
对于上面显示的示例,以下代码用于加载ViewController:
早些时候(使用nib构建视图时):
TheNewVC *theNewVC = [[TheNewVC alloc] initWithNibName:@"TheNewVC" bundle:nil];
[self presentModalViewController:theNewVC animated:YES];
现在(当以编程方式构建视图时,导致上述问题):
TheNewVC *theNewVC = [[TheNewVC alloc] initWithNibName:nil bundle:nil];
UINavigationController *addNavCon = [[UINavigationController alloc] initWithRootViewController:theNewVC];
[self presentModalViewController:addNavCon animated:YES];
JFYI,即使TheNewVC *theNewVC = [[TheNewVC alloc] initWithNibName:nil bundle:nil];
被TheNewVC *theNewVC = [[TheNewVC alloc] init];
替换,问题仍然存在。
可以使用哪种解决方案不涉及重新安装应用程序。我们可以通过编程方式删除iOS所指的nib缓存吗?或者更坏的情况下,请用户这样做?任何帮助将不胜感激。
答案 0 :(得分:7)
我假设您正在Xcode中运行该应用程序。哪个没有从您的应用包中清除预先存在的资源。但是,当您通过应用程序商店安装时,我确定它确实清理了您的应用程序包并将新版本解压缩到顶部(因此旧资源被清除..)
如果你想要双重确认你的.xib将不会被加载,只需重命名ViewController类,它将不再加载旧的xib(因为它在应用程序包中查找名为viewcontrollername.xib的文件) )
要执行此操作,请转到视图控制器的.h,右键单击视图控制器名称,然后选择“重构”。