2012-02-21 50 views
3
  • 我已經完成了我的應用程序的應用程序的發射次數。
  • 現在,當用戶啓動我的應用程序5倍
  • 我要顯示一個警告消息說,「你已經使用好5倍以上去爲下一個版本」。我應該如何算在iPhone

  • 我們應該怎樣算髮射次數和在哪裏我們稱這種警報的看法?

回答

8

NSUserDefaults的使用在applicationDidBecomeActive :.

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


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

只是不要忘記檢查零 - 如果它是零,你必須把它初始化爲1和保存(同步)。您還必須在每次增量後進行同步。並且didFinishLaunching對於較新的iOS不是一個好的選擇 - 應用程序保持在後臺運行,並且每次啓動時都不會調用此方法。改用didBecomeActive。 – 2012-02-21 13:17:37

1

你可以指望使用NSUserDefaults的發射次數。

一些更多的信息:Saving an int to nsuserdefaults

你會實現應用程序委託的功能。最有可能在- (void)applicationDidBecomeActive:(UIApplication *)application的方法。

首先,你檢查你的launchesSoFar值店。如果沒有(如果得到nil),則將其初始化爲1,並且不要忘記同步。如果它已經存在,你再增加它 - sznchronize。如果它> 5,那麼做你想做的事情。

6

您可以在您的應用程序代理使用方法:

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

檢查它了多少次發射。然後,你可以簡單地使用標準用戶默認爲讀/寫值:

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

,辦理入住手續之後,如果「i」是大於5和發送消息,查看控制器,以便將其觀點,加載後把警報信息或者直接再次調用用戶默認值,以在其中顯示警報和檢查值。

+0

applicationDidBecomeActive將是更好的選擇,因爲它被稱爲每次用戶帶來的應用起來。 didFinishLaunchingWithOptions僅在第一次被調用,並且應用程序在後臺被終止或被用戶從後臺進程中刪除。別的,這是要走的路。 – 2012-02-21 13:25:35

+0

我同意你的看法,但這取決於你想要什麼。問題是發射次數。如果我正確理解了目的,我會把它放在didBecomeActive中,但也要保存最後的日期/時間,這個數字會增加,並限制它每天最多增加一次。 – 2012-02-21 13:32:12

+0

這也是一個好主意:) – 2012-02-21 13:37:20

相關問題