我想更新的应用添加第一次启动之旅。 我通常会用某种处理这个NSUserDefaults
关键。 不过,也有应用程序的发布已经预先存在的现有版本。
我怎样才能触发第一次启动该应用程序的某些行为,但仅用于全新安装而不是更新后的首次发射?
我想更新的应用添加第一次启动之旅。 我通常会用某种处理这个NSUserDefaults
关键。 不过,也有应用程序的发布已经预先存在的现有版本。
我怎样才能触发第一次启动该应用程序的某些行为,但仅用于全新安装而不是更新后的首次发射?
您可以通过Web服务查看应用程序版本。 并提醒用户更新应用。 而这种情况下,需要连接互联网。
在启动,检查是否与独特的当前运行的版本名称的文件/永久设置的存在。 如果它不存在,显示游览,然后点击文件/创建持久性设置。
我可以找出迄今最好的办法是先发布一个版本,而不旅游但没有记录某种标志的NSUserDefaults的到。 然后,我可以希望,大多数现有的用户将更新和使用应用程序之前,我发动第二次更新包括游览。
我可以用@ rmaddy的建议,以寻找可能已被写入,以增加我的覆盖率任何其他先前存在的设置相结合这一点。
这是理想显然远远。
最简单的方法是使用保存当前版本NSUserDefaults
:
if (![[NSUserDefaults standardUserDefaults] objectForKey:@"app_version"] || [[[NSUserDefaults standardUserDefaults] objectForKey:@"app_version"] integerValue] < [[[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleVersion"] integerValue]) {
// new version detected!
[[NSUserDefaults standardUserDefaults] setObject:[[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleVersion"] forKey:@"app_vervion"];
}
编辑新增检查用户默认存在了含有这种功能首次更新。
编辑II现在我明白你真正想要的。 你需要几乎我写了相同的代码:
if (![[NSUserDefaults standardDefaults] boolForKey:@"tour_done"]) {
// present tour and that call:
// [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"tour_done"];
// [[NSUserDefaults standardUserDefaults] synchronize];
}