我正在使用Xcode处理iPhone应用程序。
我创建了一个包含textview的视图控制器,我希望用户能够输入可以保存的文本。
截至目前,这是我对此视图控制器的代码。
-(void)viewDidLoad
{
[super viewDidLoad];
self.navigationItem.title = @"Notes";
self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
-(void)viewWillAppear:(BOOL)animated{
self.notesText.text = _notesText.text;
}
-(void)setEditing:(BOOL)editing animated:(BOOL)animated
{
[super setEditing:editing animated:animated];
self.notesText.editable = editing;
[self.navigationItem setHidesBackButton:editing animated:YES];
if (!editing) {
_notesText.text = self.notesText.text;
}
您看到的代码允许我保存数据,但仅限于应用程序保持打开状态。我可以保存文本,数据将显示并显示应用程序是否保持打开状态。如果我保存文本并关闭应用程序,当我再次打开应用程序时,数据不会出现,所以我假设它没有保存它。
有谁知道为什么会这样。我应该更改或添加什么?
任何帮助将不胜感激!
答案 0 :(得分:1)
我不清楚你在问什么。
Core Data
或NSUserDefaults
之类的内容。 NSString
属性并在viewWillAppear:
中使用该属性。保存屏幕上的内容viewWillDisappear:
。答案 1 :(得分:0)
如果要永久保存文本,则必须保存到文件中。如上所述,NSDefaults是一个选项,但你也可以简单地将字符串写为文件,特别是如果它很长。
如果您希望简单地保留文本,即使视图已关闭,您也必须使用根ViewController保留字符串
答案 2 :(得分:0)
如果您需要将数据转储到文件中,可以执行以下操作:
+(void)createFile:(NSString*)receivedString
{
//Get the file path. Then create a new file if one doesn't exist already or append to it if it does exist
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *fileName = [documentsDirectory stringByAppendingPathComponent:@"Filename.txt"];
//create file if it doesn't exist
if(![[NSFileManager defaultManager] fileExistsAtPath:fileName])
[[NSFileManager defaultManager] createFileAtPath:fileName contents:nil attributes:nil];
//append text to file
NSFileHandle *file = [NSFileHandle fileHandleForUpdatingAtPath:fileName];
[file seekToEndOfFile];
[file writeData:[receivedString dataUsingEncoding:NSUTF8StringEncoding]];
[file closeFile];
}
但是,如果数据很小,则可以使用NSUserDefaults。
NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
[def setObject:<you text view data> ForKey:@"yourKey"];