kade

技術系の記事を書いていきます。

Objective-C: アプリにデータを保存する

NSUserDefaultという変数を使います。

viewController.h

@interface ViewController : UIViewController{
  NSUserDefaults* myData;
}

viewController.m

- (void)viewDidLoad{
  [super viewDidLoad];
  myData = [NSUserDefaults standardUserDefaults]; // 初期化
  if(![self checkMyData]){ // NOで返ってくる時は初回起動時
    NSLog(@"初めての起動");
    [self saveMyData:YES]; // FIRSTにYESを格納して次回からelseを通る
  }else{
    NSLog(@"二回目以降の起動");
  }
}
- (void)saveMyData:(bool)b{
  [myData setBool:b forKey:@"FIRST"];
  [myData synchronize];
}
- (bool)checkMyData{
  return [myData boolForKey:@"FIRST"];
}
- (void)initMyData{ // データを初期化したいときはこの関数
  [self saveMyData:NO];
}

今回はboolで作りましたが、intやNSStringなども格納出来ます。

synchronizeが少しくせもので、これをやるタイミングでセーブが反映されます。

詳解 Objective-C 2.0 第3版

詳解 Objective-C 2.0 第3版