当我第一次运行iphone应用程序时是否会触发任何代理人?

时间:2011-02-08 10:20:26

标签: iphone ipad ios

我需要跟踪某个iphone应用程序的下载。我尝试了很多,发现我们可以从AppStore跟踪它。但我需要从我的应用程序本身跟踪它。所以请帮我确定第一次启动应用程序时触发的方法。感谢。

3 个答案:

答案 0 :(得分:5)

没有特定方法仅在第一次应用程序启动时触发。您可以在应用程序启动时在用户默认值中设置一个标志 - 所以如果该标志不存在那么这将意味着该应用程序第一次启动:

- (void)applicationDidFinishLaunching:(UIApplication *)application { 
    if (![[NSUserDefaults standardDefaults] boolForKey:@"AlreadyLaunched"]){
        // First launch logic

        [[NSUserDefaults standardDefaults] setBool:YES forKey:@"AlreadyLaunched"];
        [[NSUserDefaults standardDefaults] synchronize];
    }
    ...
}

答案 1 :(得分:1)

  

但我需要从我的应用程序本身跟踪它。

没有

但如果你真的想这样做,你可以使用这样的东西:

BOOL hasUsedSpyWareFunctions = [[NSUserDefaults standardUserDefaults] boolForKey:@"SpyWareKey"];
if (!hasUsedSpyWareFunctions) {
    [self spyOnUser];
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"SpyWareKey"];
}

如果您是间谍的专业人士,只要方法成功返回(即可以建立网络连接),您只需将密钥设置为YES。

答案 2 :(得分:0)

没有这样的事件,至少没有我所知道的事件。但是你可以使用NSUserDefaults轻松完成你想要的任务。只需检查一些布尔标志,如果它不存在,那么它是第一次运行,你可以设置标志:

NSString *const AlreadyRunKey = @"already-run";
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
if (![prefs boolForKey:AlreadyRunKey]) {
    [prefs setBool:YES forKey:AlreadyRunKey];
    [prefs synchronize];
    // do whatever else you want
}