2011-09-06 62 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