code_junkie

iphone: the quickest easiest way to detect first launch

Nov 12th, 2011
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. // -applicationDidFinishLaunching:
  2. [[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES],@"firstLaunch",nil]];
  3. // to check it:
  4. [[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"];
  5. // -applicationWillTerminate:
  6. [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"firstLaunch"];
  7.  
  8. // Get current version ("Bundle Version") from the default Info.plist file
  9. NSString *currentVersion = (NSString*)[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];
  10. NSArray *prevStartupVersions = [[NSUserDefaults standardUserDefaults] arrayForKey:@"prevStartupVersions"];
  11. if (prevStartupVersions == nil)
  12. {
  13. // Starting up for first time with NO pre-existing installs (e.g., fresh
  14. // install of some version)
  15. [self firstStartAfterFreshInstall];
  16. [[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:currentVersion] forKey:@"prevStartupVersions"];
  17. }
  18. else
  19. {
  20. if (![prevStartupVersions containsObject:currentVersion])
  21. {
  22. // Starting up for first time with this version of the app. This
  23. // means a different version of the app was alread installed once
  24. // and started.
  25. [self firstStartAfterUpgradeDowngrade];
  26. NSMutableArray *updatedPrevStartVersions = [NSMutableArray arrayWithArray:prevStartupVersions];
  27. [updatedPrevStartVersions addObject:currentVersion];
  28. [[NSUserDefaults standardUserDefaults] setObject:updatedPrevStartVersions forKey:@"prevStartupVersions"];
  29. }
  30. }
  31.  
  32. // Save changes to disk
  33. [[NSUserDefaults standardUserDefaults] synchronize];
  34.  
  35. [[NSUserDefaults standardUserDefaults] synchronize];
Add Comment
Please, Sign In to add comment