繁体   English   中英

应用更新仍然指向旧的已删除的笔尖。 如何在没有重新安装app的情况下解决此问题?

[英]App update still points to old deleted nibs. How to resolve this without app re-install?

我们有一个应用已经在应用商店中存在。

现在,我们计划通过以编程方式创建所有视图并删除相应的NIB(XIB)文件来减小应用程序大小。

问题是即使删除nib并且没有被调用,应用程序的更新版本仍然指向旧的笔尖,并且出现了这样的问题(这个图像只是一个例子,问题在整个应用程序中是一致的) :

在此输入图像描述

基本上,视图由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];替换为TheNewVC *theNewVC = [[TheNewVC alloc] init]; ,问题依然存在。


可能存在哪些解决方案不涉及重新安装应用程序。 我们可以通过编程方式删除iOS所指的nib缓存吗? 或者更坏的情况下,请用户这样做? 任何帮助将非常感激。

我假设您正在Xcode中运行该应用程序。 不会清除您的应用包中预先存在的资源。 但是,当您通过应用程序商店安装时,我确信它会清除您的应用程序包并将新版本解压缩到顶部(因此旧资源被清除..)

如果你想要双重确定你的.xib不会被加载,只需重命名ViewController类,它将不再加载旧的xib(因为它在应用程序包中查找名为viewcontrollername.xib的文件)

要执行此操作,请转到视图控制器的.h,右键单击视图控制器名称,然后选择“重构”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM