読者です 読者をやめる 読者になる 読者になる

NSUserDefaults を使ってアプリの初回起動判定を行う

objective-c ios

環境:iOS Deployment Target 7.1

アプリの初回起動判定は NSUserDefaults でやるのがよいらしい。
以下のように NSUserDefaults を使って初回判定を行うメソッドを作った。

- (BOOL)isFirstRun
{
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

    if ([userDefaults objectForKey:@"firstRunDate"]) {
        // 日時が設定済みなら初回起動でない
        return NO;
    }

    // 初回起動日時を設定
    [userDefaults setObject:[NSDate date] forKey:@"firstRunDate"];

    // 保存
    [userDefaults synchronize];

    // 初回起動
    return YES;
}

これを使って初回起動時の処理を書く。

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

    if ([self isFirstRun]) {
        // 初回起動時の処理を書く
        NSLog(@"初回起動だよ");
    }

    return YES;
}