インターネットを検索することで、plist からデータを取得し、plist にデータを書き込むコードを思いつきました。データを正常に取得できますが、データの保存が機能しません。ここに私の店のデータメソッドがあります:
- (void)saveData {
[self.time setObject:[NSNumber numberWithInt:self.brace.timeOutOfBrace.todayHours] forKey:@"TimeOutOfBraceHours"];
[self.time setObject:[NSNumber numberWithInt:self.brace.timeOutOfBrace.todayMinutes] forKey:@"TimeOutOfBraceMinutes"];
[self.time setObject:[NSNumber numberWithInt:self.brace.timeOutOfBrace.overallHours] forKey:@"OverallHours"];
[self.time setObject:[NSNumber numberWithInt:self.brace.timeOutOfBrace.overallMinutes] forKey:@"OverallMinutes"];
[self.time setObject:[NSNumber numberWithInt:self.brace.timeOutOfBrace.goalForWeek] forKey:@"WeeklyGoal"];
NSString *plistCatPath = [[NSBundle mainBundle] pathForResource:@"Property List" ofType:@"plist"];
NSMutableDictionary *rootDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:plistCatPath];
[rootDictionary setObject:self.time forKey:@"Time"];
[rootDictionary writeToFile:plistCatPath atomically:YES];
}
NSMutableDictionary
self.time
実装で宣言されています。
データの読み取り方法は次のとおりです。
- (void)retreiveData {
NSString *plistCatPath = [[NSBundle mainBundle] pathForResource:@"Property List" ofType:@"plist"];
NSMutableDictionary *rootDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:plistCatPath];
self.time = rootDictionary[@"Time"];
NSLog(@"%@", self.time[@"TimeOutOfBraceHours"]);
self.brace.timeOutOfBrace.todayHours = [[self.time objectForKey:@"TimeOutOfBraceHours"] intValue];
self.brace.timeOutOfBrace.todayMinutes = [[self.time objectForKey:@"TimeOutOfBraceMinutes"] intValue];
self.brace.timeOutOfBrace.overallHours = [[self.time objectForKey:@"OverallHours"] intValue];
self.brace.timeOutOfBrace.overallMinutes = [[self.time objectForKey:@"OverallMinutes"] intValue];
self.brace.timeOutOfBrace.goalForWeek = [[self.time objectForKey:@"WeeklyGoal"] intValue];
}
プログラムを実行すると、前回の実行時に plist に保存されたと思われるデータではなく、手動で plist に入れたデータが取得されます。
前もって感謝します。