如何保存和加载UITextField?

如何保存和加载UITextField?,text,load,uitextfield,save,Text,Load,Uitextfield,Save,我到处搜索,尝试了很多代码,但似乎什么都不适合我。我所需要做的就是加载(在viewDidLoad上)一个文本字段,并在按下按钮时保存它 最简单的方法是什么?我使用的是单个窗口应用程序,我没有视图控制器(这可能会有所不同?) 谢谢 James创建一个NSMutableDictionary作为属性,然后 单击按钮时: -(IBAction)buttonClicked:(id)sender { NSArray *paths = NSSearchPathForDirectoriesInDomains(N

我到处搜索,尝试了很多代码,但似乎什么都不适合我。我所需要做的就是加载(在viewDidLoad上)一个文本字段,并在按下按钮时保存它

最简单的方法是什么?我使用的是单个窗口应用程序,我没有视图控制器(这可能会有所不同?)

谢谢


James创建一个NSMutableDictionary作为属性,然后

单击按钮时:

-(IBAction)buttonClicked:(id)sender
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];   
NSString *devicePath = [documentsDirectory stringByAppendingPathComponent:@"yourfile.txt"]; 
[self.dictionary setObject:self.textField.Text key:@"textField"];
[self.dictionary writeToFile:devicePath atomically:YES];
}
在viewDidLoad上,可以通过以下方式获取文件的值:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"youefile"
                                                     ofType:@"txt"];
self.dictioary = [[[NSMutableDictionary alloc] initWithContentsOfFile:filePath] autorelease];

使用SQLite数据库:

-(i)支票{

sqlite3_stmt *statement;

const char *dbpath = [databasePath UTF8String];

if (sqlite3_open(dbpath, &contactDB) == SQLITE_OK)
{
    NSString *querySQL = [NSString stringWithFormat: @"SELECT Notes FROM NotesTable WHERE UserID = (\"%@\")", userID.text]; 

    const char *query_stmt = [querySQL UTF8String];

    sqlite3_prepare_v2(contactDB, query_stmt, -1, &statement, NULL);

    if (sqlite3_step(statement) == SQLITE_ROW) {

        NSString *notesField = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(statement, 0)];

        Notes.text = notesField;

        [notesField release];

    }else{
        Status.text = @"Not found";

    }

    sqlite3_finalize(statement);
}
sqlite3_close(contactDB);    
}

您可以稍作调整,使此代码适应您的需要。
要实现SQLite3,请检查网络。但我想这对你将来会有很大帮助。我认为这将是最灵活的,因为它还允许您创建关系数据库

使用专为此场景设计的NSUserDefaults

NSUserDefaults *defs = [NSUserDefaults standardUserDefaults];

// saving a NSString (you usually do this when the value is being submitted)
[defs setObject:textField.text forKey:@"aKey"];
[defs synchronize]; //this commits the new value - shouldn't be necessary because this is doe automatically, but just in case...

// loading a NSString (you usually do this on viewDidLoad)
testField.text = [defs objectForKey:@"aKey"];
该值跨会话存储。
您还可以存储其他值类型(NSString除外)。
为要存储值的每个字段使用不同的键。

这也可用于存储应用程序配置/选项/etc

您可以说“保存”。你说的节约是什么意思?你需要永久保存这些数据吗?它就像一个记笔记的应用程序,我需要用户能够在关闭和打开应用程序时自动保存文本字段,而无需他们做任何事情。我通过一种推荐的方法得到了此错误代码:我遵循了本教程:您好,谢谢!一个.rtf文件可以保存数据吗?它不工作,当按下保存按钮时,我会收到一个NSException错误…是的,只要您正确编码它。UTF-8正常工作。好的,谢谢。但是现在我有一个NSException错误,它说:;你知道我如何解决这个问题吗?这很难吗?这样做需要多长时间?我忘了提到:为了保存:使用一个“UPDATE”语句并检查SQLITE_在本例中是否完成。上面提到的方法就是我在viewDidLoad方法中使用的方法。在你的项目中初始化数据库时,互联网上有大量的信息。相信我,时间不会太长-你会在一天结束前得到它;事实上这很容易。这里有一个关于基于视图的应用程序的教程:但我也建议你多看看网站,以防你不能立即了解一些细节。这似乎有点难。那么,我如何将数据保存到数据库中,因为您已经给了我加载上述内容的能力?:-)此外,这是我试图遵循的教程(因为数据无法加载,所以对我来说根本不起作用):