检测具有先前版本的应用程序的首次启动 [英] Detecting the first launch of an app with previous versions

查看:43
本文介绍了检测具有先前版本的应用程序的首次启动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想更新一个应用,以便在首次启动时添加游览.我通常会用某种 NSUserDefaults 键来处理这个问题.但是,该应用程序的现有版本已经发布.

I would like to update an app to add a tour on first launch. I would ordinarily handle this with some kind of NSUserDefaults key. However, there are pre-existing existing versions of the app already released.

如何在应用首次启动时触发某些行为,但仅适用于全新安装,而不适用于更新后的首次启动?

How can I trigger some behavior on first launch of the app, but only for fresh installs and not for the first launch after an update?

推荐答案

最简单的方法是使用 NSUserDefaults 保存当前版本:

The easiest way is to save the current version using 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"];
}

编辑为包含此功能的首次更新添加了对用户默认值存在的检查.

EDIT Added check for user defaults existence for first update containing this functionality.

编辑二我现在明白你真正想要什么.您将需要几乎与我编写的代码相同的代码:

EDIT II I now understood what you really want. You'll need almost the same code I wrote:

if (![[NSUserDefaults standardDefaults] boolForKey:@"tour_done"]) {
    // present tour and that call:
    // [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"tour_done"];
    // [[NSUserDefaults standardUserDefaults] synchronize];
}

这篇关于检测具有先前版本的应用程序的首次启动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆