Я сохраняю дату, которая была преобразована в строку в список при выходе из приложения.Когда viewDidLoad запущен, я пытаюсь прочитать строку обратно и преобразовать ее обратно в дату.Строка сохраняется в листе и правильно читает, но не преобразует обратно в дату.Я использую стандартный формат, заданный командой даты NSDate.Время1 всегда равно нулю.
Вывод выглядит так:
time1string = 2010-07-07 13:47:12 -0500
time1 = (null)
Код выглядит так:
- (void)applicationWillTerminate:(NSNotification *)notification {
NSMutableArray *array = [[NSMutableArray alloc] init];
[array addObject: [NSString stringWithFormat:@"%@", time1]];
[array writeToFile:[self dataFilePath] atomically:YES];
[array release];
NSLog(@"APP Terminating, Persisting Data");
}
- (void) viewDidLoad {
NSLog(@"View did load");
NSString *filePath = [self dataFilePath];
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
NSArray *array = [[NSArray alloc] initWithContentsOfFile:filePath];
NSString *time1string = [array objectAtIndex:1];
NSLog(@"time1string = %@",time1string);
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd hh:mm:ss Z"];
time1 = [dateFormat dateFromString:time1string];
NSLog(@"time1 = %@",time1);
[dateFormat release];
[array release];
}
UIApplication *app = [UIApplication sharedApplication];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationWillTerminate:)
name:UIApplicationWillTerminateNotification
object:app];
[super viewDidLoad];
}