2012年11月6日火曜日

データ保存について

NSDictionaryとNSUserDefaultを使用してデータを保存します。

 目標

①日付、②品目数(朝or昼or夜)をセルのカスタマイズを使って表示させることです。
1、dictionary、NSUserDefaultsを使って
①日付
②品目数
③品目数
④品目数
を格納、保存
です。 現在の状況は、とりあえずコードベタ張りするとこんな感じ。
//seguの処理
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // 遷移先を取得
    if ([[segue identifier] isEqualToString:@"ponSegue"]) {
        
        TableViewController *tableViewController = segue.destinationViewController;
        
        //追加 日時の表記を変える
        //日時の書式を作成
        nowDate = [NSDate date];
        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
        [formatter setDateFormat:@"yyyy年 MM/dd "];  //HH:mm
        //日付型をString型にする
        NSString *dateString = [formatter stringFromDate:nowDate];
        
        // NSMutableArrayの生成
        NSMutableArray* myMuArray = [NSMutableArray array];
        //日付を入れる配列用意
        NSMutableArray* myDateString = [NSMutableArray array];
        
        
        // 保存されているデータがあるかないか判断
        if ([[[NSUserDefaults standardUserDefaults]
              arrayForKey:@"ARRAY"] count] > 0) {  // あれば呼び込む
            
            //NSarrayで取り出す (これじゃないとNSUserDefaultsから取り出せない)
            NSArray *array = [[NSUserDefaults standardUserDefaults]
                              arrayForKey:@"ARRAY"];
            
            //NSMutableArrayに格納
            myMuArray = [[NSMutableArray alloc] initWithArray:array];
            NSLog(@"myMuArray is %@",[myMuArray description]);
        }
        
        // 新しい値を配列に追加
        [myDateString addObject:dateString];
        [myMuArray addObject:hozontfd.text];
        
        //大きな配列全体の保存
        saveArray = [[NSMutableArray alloc] initWithCapacity:1];
        
        //dictionaryにそれぞれの要素を入れる
        NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithCapacity:1];
        
        [dict setObject:myDateString forKey:@"Date"];
        [dict setObject:myMuArray forKey:@"MuArray"];
        //これでまとめて保存
        [saveArray addObject:dict];
        // 値を保存
        [[NSUserDefaults standardUserDefaults] setObject:saveArray forKey:@"ARRAY"];
        [[NSUserDefaults standardUserDefaults] synchronize];
        
        tableViewController.myMuArray2 =saveArray;
        tableViewController.hinmoku = myMuArray;
        tableViewController.hiduke = myDateString;
        
    }
    
}

ふむ、、、おかしいですねー。 出力結果が、(朝1日分のみですが^^;;)
        {
        Date =         (
            "2012\U5e74 11/06 "
        );
        MuArray =         (
            12
        );
    }
)
思うようなデータが入ってないっすねー。 理想は、
{
Date = "日付"
 Asa = "数字"
 Hiru = "数字"
 Yoru = "数字"
},{
Date = "日付"
 Asa = "数字"
 Hiru = "数字"
 Yoru = "数字"
}

ですかねー。違うかもしれんけど^^;; 長くなったので次回

0 件のコメント:

コメントを投稿