【Objective-C】iPhoneアプリの作成方法:User default データ保存

2012/01/27  カテゴリー:アプリ開発    タグ:タグ:



【 パスから配列+辞書を読み込み、各データ取得 】 // — 保存したパスを探して見つける NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsFolder = [paths objectAtIndex:0 […]


【 パスから配列+辞書を読み込み、各データ取得 】

// — 保存したパスを探して見つける
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsFolder = [paths objectAtIndex:0];
NSString *dataSetsSavePath = [documentsFolder stringByAppendingPathComponent:@”DataSets.plist”];
// — そのパスから以前保存した配列bodyDataTotalArrayとその他を取り出す
bodyDataTotalArray = [NSMutableArray arrayWithContentsOfFile:dataSetsSavePath];
// — — 今回が初めてで、なかったら、作成。
if (!bodyDataTotalArray) { bodyDataTotalArray = [NSMutableArray array]; }

#pragma mark ― 最後のデータ
// — 取得した配列bodyDataTotalArrayから!☆最新の☆!辞書bodyDataAtSectionを取り出す
NSDictionary *bodyDataAtSection = [bodyDataTotalArray lastObject];
// — 各値を取得
dateLastDate = [bodyDataAtSection objectForKey:@”date”] ;

【 新規にパスから配列+辞書、各データ保存 】
// — 保存するパスを探して見つける
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsFolder = [paths objectAtIndex:0];

NSString *dataSetsSavePath = [documentsFolder stringByAppendingPathComponent:@”DataSets.plist”];

// — そのパスから以前保存した配列bodyDataTotalArrayとその他を取り出す
bodyDataTotalArray = [NSMutableArray arrayWithContentsOfFile:dataSetsSavePath];

// — — 今回が初めてで、なかったら、作成。
if (!bodyDataTotalArray) { bodyDataTotalArray = [NSMutableArray array]; }

// — 今回のデータから辞書を作成 (全部 Now になっていることに注目)
NSArray *key = [[NSArray alloc] initWithObjects:@”date”, @”weight”,@”fatPercentage”,@”metabolism”,@”ageBody”, @”muscleMass”, @”waistSize”, @”memo”, @”fatBurn”, @”mustle”, @”saveFood”, @”drunk”, @”eatMuch”, @”lessSleep”, @”fireRange”,@”star”, nil];
NSArray *value=[[NSArray alloc] initWithObjects:dateNowDate, weightNow, fatPercentageNow,metabolismNow,ageBodyNow,muscleMassNow,waistSizeNow,memoStringNew ,fatBurnNumber,mustleNumber,saveFoodNumber,drunkNumber,eatMuchNumber,lessSleepNumber,fireRangeNumber,starNumber,nil];
bodyDataNowDictionary = [[NSDictionary alloc]initWithObjects:value forKeys:key];

// — 配列bodyDataTotalArrayに 今回のデータ辞書bodyDataNowDictionary を 追加
[ bodyDataTotalArray addObject:bodyDataNowDictionary];

// — ★★★★★★ 配列bodyDataTotalArray とその他を パスに保存。 ★★★★★★
[bodyDataTotalArray writeToFile:dataSetsSavePath atomically:YES];

Share on Google+Tweet about this on TwitterShare on Facebook