我的应用程序有一个欢迎屏幕,显示应用程序第一次运行。我最近更改了警报的文本,但是在新版本替换它之前,请注意旧警报屏幕显示一两秒钟。它也会在应用程序的每次发布时出现。它在我的iPhone和模拟器上完成。我从手机上删除了应用程序。我从模拟器中删除了它,并重置了内容和设置。我已经清理了应用程序。我试着清除模拟器缓存(派生数据),没有运气。我尝试重命名nsuserdefaults键和警报名称。旧警报仍显示在应用启动时,也无法点击。我必须等待它消失。
首次运行代码
-(void)viewDidLoad
{
[super viewDidLoad];
if (![[[NSUserDefaults standardUserDefaults] valueForKey:@"onetime"] boolValue]) {
NSLog(@"first run"); //This only shows the first time so I know code is okay below
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"onetime"];
[[NSUserDefaults standardUserDefaults] synchronize];
UIAlertView *onetime = [[UIAlertView alloc] initWithTitle:@"Welcome" message:@" -message here-" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[onetime show];
}
}
我知道代码本身因为日志而没问题。我不明白为什么要显示旧警报或如何摆脱它。我相信它不会在新安装上发生,但我想确定一下。
修改
该应用已进行本地化,我重新加载了这些文件。清理,重建,重置内容和设置,现在应用程序第一次启动清理。每次在此之后它将显示1秒的新警报并消失。没有第一次运行的日志。警报图像以某种方式被缓存。此外,警报不是本地化的一部分。没有字符串文件或plist。刚刚在viewdidload中编码。如果没有在viewdidload中调用它会如何显示?
解决
我终于找到了问题。不断出现的旧屏幕是发布图像。有时它是简单的东西。它在viewdidload之前显示,这导致我检查它可能来自哪里。
答案 0 :(得分:0)
如果日志显示一次,则问题出在其他地方。尝试清理项目(shift + command + K)然后再试一次。