我已經看到這個問題很多次了。今天抽空研究了一下
首次啟動並執行應用程式加入一些help 或者 宣傳動畫 現在變的很重要了。
一個有用的例子是發送一個分析執行個體。這可能是一個很好的方法來確定有多少人下載實用應用程式。有人會說:“但是,嘿,蘋果AppStore已經告訴我,應用程式的下載量了”。
流行的解決方案是在大多數地方是用[NSUserDefaults standardUserDefaults的一個關鍵,如果它不存在,這意味著這是應用程式啟動,否則,它不是第一次。然後,它說設定成後者在該方法的關鍵:“applicationWillTerminate:(UIApplication*)application”。這一解決方案非常好,直到我們得到的iOS 4.0。在iOS 4.0 +這種方法很少被稱為(只適用於記憶體問題)在蘋果的UIApplicationDelegate文檔中所述。...
你可以搜尋的關鍵,如果它未設定運行 first-time-code,並設定它,但在app 的其餘部分你將無法知道它是不是第一次運行(除非你使用一個全域變數)
因此,我建議我的解決方案:...
在appdelegate.m中找到 “application:didFinishLaunchingWithOptions:” 方法, 添加以下代碼:
if (![[NSUserDefaults standardUserDefaults] boolForKey:@"everLaunched"]) {
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"everLaunched"];
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstLaunch"];
}
else{
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"firstLaunch"];
}
總的解決辦法是 2 個key: @”everLaunched”判斷使用者以前是否登入,
@”firstLaunch” 用來開發人員在程式的其他部分判斷.
在第一次啟動的時候 key @”everLaunched” 不會被賦址的, 並且設定為YES. @”firstLaunch” 被設定為 YES.
在程式的其他部分用以下代碼判斷:
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"]) {
// 這裡判斷是否第一次
UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"第一次"
message:@"進入App"
delegate:self
cancelButtonTitle:@"我知道了"
otherButtonTitles:nil];
[alert show];
[alert release];
}