很多時候我們必須在使用者第一次打開 app 時做一些事情,例如使用的導覽或是資料的處理,這篇介紹的方法則是和網站記錄 cookie 的方式類似 (第一次進到某些網站會有介紹導覽,之後因為有 cookie 存在瀏覽器記錄就不會再顯示)

 

可以在專案 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];          
}

第一段代碼運行過後 key @”firstLaunch” 將被設置為 NO。

 

參考資料