2011-09-06 61 views
2

可能重复:
How would I save and load a UITextField?如何使用NSUserDefaults保存和加载UITextField?

我已经试过各种不幸的是没有为我工作。我可能已经测试了大约10种保存和加载UITextField的方法,但它们不起作用。我有六个UITextFields,并且想要在按下按钮时保存它们,并在调用viewDidLoad时加载它们。

请问我能有一些帮助,因为我已经到了第二天或两个,我还没有成功地做到这一点中发布应用程序...

感谢,

詹姆斯

+0

如果你能张贴在你正在尝试这将会是非常有益的 –

+0

有这么多不同类型的我试过,但我删除了代码,一旦没有工作......我真的尝试了一些代码这里列出的所有东西,我跟着几个教程... – pixelbitlabs

回答

9
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults]; 

NSString* textField1Text = textField1.text; 
[defaults setObject:textField1Text forKey:@"textField1Text"]; 

NSString* textField2Text = textField2.text; 
[defaults setObject:textField2Text forKey:@"textField2Text"]; 

NSString* textField3Text = textField3.text; 
[defaults setObject:textField3Text forKey:@"textField3Text"]; 

NSString* textField4Text = textField4.text; 
[defaults setObject:textField4Text forKey:@"textField4Text"]; 

NSString* textField5Text = textField5.text; 
[defaults setObject:textField5Text forKey:@"textField5Text"]; 

NSString* textField6Text = textField6.text; 
[defaults setObject:textField6Text forKey:@"textField6Text"]; 

[defaults synchronize]; 

NSString* temp = [defaults objectForKey:@"textField1Text"]; 
NSString* temp = [defaults objectForKey:@"textField2Text"]; 
NSString* temp = [defaults objectForKey:@"textField3Text"]; 
NSString* temp = [defaults objectForKey:@"textField4Text"]; 
NSString* temp = [defaults objectForKey:@"textField5Text"]; 
NSString* temp = [defaults objectForKey:@"textField6Text"]; 

NSLog(@"%@,%@,%@,%@,%@,%@",temp1,temp2,temp3,temp4,temp5,temp6); 

新的编辑

- (IBAction) saveBtnPresssed : (id) sender 
    { 

     NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults]; 

     NSString* textField1Text = textField1.text; 

     [defaults setObject:textField1Text forKey:@"textField1Text"]; 

     NSString* temp = [defaults objectForKey:@"textField1Text"]; 

     NSLog(@"%@",temp); 

    } 
+0

谢谢你的!没有工作,虽然...这是我使用的代码:http://pastie.org/2490717 – pixelbitlabs

+0

哦,它的工作bcz所有我的字符串被命名为温度。将它重命名为temp1,temp2等,它应该可以正常工作....... – mayuur

+0

它现在可以正常工作。测试了这一个。 – mayuur

2

This link可能对您有所帮助。

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 

//保存一个NSString

[prefs setObject:@"your textField text" forKey:@"keyToLookupString"]; 
+0

我刚刚尝试过,它不适合我。这是我的代码;代码按钮保存:http://pastie.org/2490681 ViewDidLoad的代码:http://pastie.org/2490687 – pixelbitlabs

+0

我已经添加了一个关于查看您的代码后同步的答案。试一试:) –

+0

不幸的是我不工作:( – pixelbitlabs

2

在设置你需要调用同步把它保存并提交到你的对象您的用户默认值如此(使用您在上面提供的评论中提供的示例):

- (IBAction)doSaveAllNotes{ 

    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 
    [prefs setObject:Assignment1.text forKey:@"Assignment1Text"]; 
    [prefs synchronize]; // This is to save it and is pretty important! 

    NSLog(@"Saved All Notes"); 
} 
+0

即使使用“[prefs synchronize]”,仍然不能工作,添加...:S – pixelbitlabs

+0

你需要给我们更多的信息,是'Assignment1.text'正确的文本吗?你确定它不是零?是否调用了'doSaveAllNotes'方法? –

+0

Assignment1.text在加载时没有任何文本,它有一个占位符,这是一个问题吗?我确实键入它,然后按保存,但仍然没有工作:( – pixelbitlabs