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とか使うんですねぇ・・
コメントはまだありません。