【发布时间】:2012-01-04 20:53:39
【问题描述】:
我正在尝试使用“开始 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 行。有谁知道那可能是什么?
【问题讨论】: