Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该如何计算iPhone中应用程序的启动次数 我已经完成了申请 现在,当用户启动我的应用程序5次时_Iphone_Objective C_Xcode_Launching Application - Fatal编程技术网

我应该如何计算iPhone中应用程序的启动次数 我已经完成了申请 现在,当用户启动我的应用程序5次时

我应该如何计算iPhone中应用程序的启动次数 我已经完成了申请 现在,当用户启动我的应用程序5次时,iphone,objective-c,xcode,launching-application,Iphone,Objective C,Xcode,Launching Application,我想显示一条警告消息,“您已经使用了比下一版本好5倍多的功能” 我们应该如何计算发射次数,以及将此警报视图称为何处 您可以使用来计算发射次数 更多信息: 您将在application delegate中实现您的功能。最有可能是在-(void)applicationIDBECOMEACTIVE:(UIApplication*)应用程序方法中 首先检查您的launchesSoFar值是否为store。如果不是(如果得到nil),则将其初始化为1,并且不要忘记同步。如果它已经存在,则增加它并再次-sz

我想显示一条警告消息,“您已经使用了比下一版本好5倍多的功能”

  • 我们应该如何计算发射次数,以及将此警报视图称为何处


  • 您可以使用来计算发射次数

    更多信息:

    您将在application delegate中实现您的功能。最有可能是在
    -(void)applicationIDBECOMEACTIVE:(UIApplication*)应用程序
    方法中


    首先检查您的
    launchesSoFar
    值是否为store。如果不是(如果得到
    nil
    ),则将其初始化为1,并且不要忘记同步。如果它已经存在,则增加它并再次-sznchronize。如果大于等于5,则执行您不想执行的操作。

    在ApplicationIDBecomeActive:中使用NSUserDefaults

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

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

     - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    
    检查它启动了多少次。然后,您可以简单地使用标准用户默认值来读取/写入值:

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

    之后,检查“i”是否大于5,并向view controller发送一条消息,以便它在加载视图后放置警报消息,或者只需再次调用用户默认值,在您希望显示警报和检查值的位置。

    不要忘记检查nil-如果为nil,则必须将其初始化为1并保存(同步)。您还必须在每次增量之后进行同步。对于较新的iOS来说,didFinishLaunching并不是一个好选择,因为应用程序一直在后台运行,并且不会在每次启动时调用此方法。改用didBecomeActive.applicationDidBecomeActive将是更好的选择,因为每次用户打开应用程序时都会调用它。didFinishLaunchingWithOptions仅在第一次调用时,以及当用户在后台杀死应用程序或从后台进程中删除应用程序时调用。我同意你的看法,但这取决于你想要/需要什么。问题是发射次数。如果我正确理解了目的,我会将其放入didBecomeActive,但也会保存该数字增加的最后日期/时间,并将其上限设置为每天最多增加一次左右。“别忘了同步您的userdefault对象。”