Я пытаюсь сохранить простые текстовые данные в своем приложении, используя этот код из «Начала разработки для iPhone»:
- (NSString *)dataFilePath {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
return [documentsDirectory stringByAppendingFormat:kFileName];
}
- (void)applicationWillTerminate:(NSNotification *)notification {
NSMutableArray *array = [[NSMutableArray alloc] init];
[array addObject:field1.text];
[array addObject:field2.text];
[array addObject:field3.text];
[array addObject:field4.text];
[array writeToFile:[self dataFilePath] atomically:YES];
}
- (void)viewDidLoad { NSString *filePath = [self dataFilePath];
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
NSArray *array = [[NSArray alloc] initWithContentsOfFile:filePath];
field1.text = [array objectAtIndex:0];
field2.text = [array objectAtIndex:1];
field3.text = [array objectAtIndex:2];
field4.text = [array objectAtIndex:4];
}
UIApplication *app = [UIApplication sharedApplication];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationWillTerminate:)
name:UIApplicationWillTerminateNotification
object:app];
[super viewDidLoad];
}
Этот код был написан и прекрасно работает для iOS 3, но не для iOS 5. ЕслиВы просто нажимаете кнопку «Домой» в симуляторе, чтобы закрыть ее, затем поднимаете панель многозадачности и нажимаете на значок приложения, данные перезагружаются очень хорошо.Но когда вы закрываете его, нажав кнопку «Домой», затем поднимаете панель многозадачности, а также закрываете ее и перезапускаете приложение, данные исчезают.Я не думаю, что приложение получает уведомление о том, что оно закрывается, когда вы закрываете его из панели многозадачности, но я не уверен, что я все еще новичок.
Я уверенчто мне просто нужно добавить дополнительную строку или 2 к коду, который у меня уже есть.Кто-нибудь знает, что это может быть?