NSUserDefaultsで多次元配列を扱う
NSUserDefaultsはアプリの設定値等を手軽に保存、読み込みできるので頻繁に使用しています
int型の多次元配列を使いたくて調べたので書いておきます
<<保存>>
//宣言
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//[defaults 保存する型:保存するデータ forKey:@キー];
//文字列
[defaults setObject:@"player" forKey:@"player"];
//int型
[defaults setInteger:18 forKey:@"hole"];
などなど・・
//最後にデータの更新をしておく
[defaults synchronize];
<<読み込み>>
//宣言
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
//data = [defaults 読み込む型:@キー];
//文字列
NSString s = [defaults stringForKey:@"player"]
//int型
int i = [defaults integerForKey:@"hole"]
などなど・・
詳細はー>参照ページ
やっと本題ですが、int型の二次元配列の保存/読み込みをする際のやり方
<<保存>>
// //配列の宣言 int scoreData[4][18]; for(int i=0; i<4; i++){ for(int j=0; j<18; j++){ scoreData[j]=0; } } //宣言 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; //保存 NSData *data = [NSData dataWithBytes:&scoreData length:sizeof(scoreData)]; [defaults setObject:data forKey:@"scoreData"]; //更新 [defaults synchronize]; //
<<読み込み>>
// //配列の宣言 int scoreData[4][18]; //宣言 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; //読み込み NSData *data = [defaults dataForKey:@"scoreData"]; memcpy(&scoreData, data.bytes, data.length); //
memcpyとか使うんですねぇ・・
コメントはまだありません。