如何在iPhone上计算应用程序的启动次数

3
  • 我已经完成了我的应用程序。
  • 现在当用户启动我的应用程序5次
  • 我想显示一个警告消息,提示“您已经使用了超过5次,请升级到下一个版本”。

  • 我们应该如何计数启动次数,并在哪里调用此警报视图?

3个回答

9

在applicationDidBecomeActive:中使用NSUserDefaults。

NSUserDefaults * userDefaults = [NSUserDefaults standardUserDefaults];
        NSInteger appLaunchAmounts = [userDefaults integerForKey:@"LaunchAmounts"];
        if (appLaunchAmounts == 5)
        {
           //Use AlertView


        }
        [userDefaults setInteger:appLaunchAmounts+1 forKey:@"LaunchAmounts"];

只要不要忘记检查nil值 - 如果它是nil,你必须将它初始化为1并保存(同步)。每次增加后也必须进行同步。在较新的iOS上,didFinishLaunching不是一个好选择 - 应用程序在后台运行,并且该方法不会在每次启动时被调用。使用didBecomeActive代替。 - Rok Jarc

6

您可以在您的应用程序委托中使用该方法:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

为了检查应用程序启动的次数,您可以使用标准的用户偏好设置来读取/写入该值:

NSInteger i = [[NSUserDefaults standardUserDefaults] integerForKey:@"numOfLCalls"];
[[NSUserDefaults standardUserDefaults] setInteger:i+1 forKey:@"numOfLCalls"];

其后,检查变量“i”是否大于5,并向视图控制器发送消息,以便在其视图加载后放置警报消息,或者仅仅重新调用用户默认设置并检查值以显示警报。


applicationDidBecomeActive会更好,因为每次用户打开应用程序时都会调用它。 didFinishLaunchingWithOptions仅在第一次调用时以及当应用程序在后台被杀死或被用户从后台进程中删除时才会被调用。否则这是正确的方式。 - Rok Jarc
我同意你的观点,但这取决于你想要/需要什么。问题是启动次数。如果我正确理解了目的,我会将其放在didBecomeActive中,同时保存上次增加该数字的日期/时间,并将其限制为每天最多增加一次。 - Matic Oblak
1
Hemang Shah 评论 "别忘了同步你的userdefault对象。" - Rup

1

您可以使用NSUserDefaults来计算启动次数。

更多信息:将int保存到nsuserdefaults

您应该在应用委托中实现您的功能。很可能是在 - (void)applicationDidBecomeActive:(UIApplication *)application 方法中。

首先,您需要检查您的 launchesSoFar 值是否已存储。如果没有(如果您得到了nil),则将其初始化为1,并不要忘记同步。如果它已经存在,您就会将其增加并再次 - 同步。如果它>=5,那么就做你想做的事情。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接