我正在我的某个应用中创建一个新功能,以显示"新功能"页。我将这一切按预期工作,并将最后一个版本(存储)与当前版本进行比较,然后在显示功能列表后更新当前版本。
这一切都很有效并且符合预期。我现在的问题是确定用户是否已安装该应用程序。
案例1)如果用户是全新用户且是他们第一次下载应用程序,则不应显示新功能列表。
案例2)如果他们已经安装了应用并将他们的应用更新为新版本,那么我们需要显示新的功能列表。
我需要帮助的部分是案例2.如何确定用户是否已安装该应用程序,而不必仅为了事先设置currentInstalledVersion
变量而发布次要更新?
答案 0 :(得分:0)
if(currentInstalledVersion)
{
if(currentInstalledVersion < actualCurrentVersion)
{
// user upgraded
}
}
else
{
if(someOtherDataSavedOnDiskExists)
{
// user had the app with a version before you implemented currentInstalledVersion and is updating
}
else
{
// fresh install
}
}
根据以下评论进行更新
好的,在这种情况下,没有内置的机制可以帮助你解决这个问题。在你自己实施一种方式(带有这个标志)之前,你无法检查。但是,如果您有任何其他标记或数据,例如您已写入NSUserDefaults
,则可以在启动时立即检查这些标记或数据,看看是否设置了这些值,这些值会告诉您它是现有用户刚刚安装了应用程序(如果未设置currentInstalledVersion
,则仅检查其他标志)。如果您尚未将任何数据写入磁盘或NSUserDefaults
,那么您对此功能的初始版本运气不佳。
我更新了上面的代码以反映这一点。
答案 1 :(得分:0)
您可以使用NSUserDefault并设置bool来检查它是否是新用户。 例如:
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"user"]){
// it's a new user
[[NSUserDefaults standardUserDefaults] setBool:YES ForKey:@"user"];
}
如果未设置默认值,boolForKey:
方法将返回NO
。