2012-10-25 30 views
0

我是新来的Objective-C和XCode,我遇到过这样的问题。nsuserdefaults中的设置值

如何正确保存价值到NSUserDefaults

我在

[_textFields objectAtIndex:2]).text 

价值,并试图做到这一点

[[[NSUserDefaults standardUserDefaults] setValue:((UITextField *)[_textFields objectAtIndex:2]).text)) forKey:@"Phone"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 

你如何做正确?

回答

1

使用setObject:forKey:: 您的代码将工作,如果你真的有数组中的文本字段中。下面是逐步分解代码,使其更加清晰:

UITextField* textField = [_textFields objectAtIndex:2]; // get your text field 
NSString* text = textField.text; // get the actual value we are going to store 
[[[NSUserDefaults standardUserDefaults] setObject:text forKey:@"Phone"]; // store it 
+0

我也想知道如何正确使用它(在语法上),因为我描述的设置值是正确的错误:) – Datenshi

+0

查看更新。 – Davyd

+0

嘿,那就像我刚才那样。我想现在会做。谢谢你的帮助。 – Datenshi

0

如果要在NSUserDefaults中存储属性列表对象(字典,数组,字符串和数字),则需要使用setObject:forKey:。而不是setValue:forKey:

[[[NSUserDefaults standardUserDefaults] setObject:((UITextField *)[_textFields objectAtIndex:2]).text)) forKey:@"Phone"]; 

更新See the docs.

0

您正在使用字符串值。你应该使用setObjectForKey(save)和objectForKey(read)。这里有一个例子

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
NSString *yourText = [[_textFields objectAtIndex:2] text]; // Your text 

// Save 
[userDefaults setObject:yourText forKey:kKey]; 
[userDefaults synchronize]; 

// Read 
NSString *result = (NSString *) [userDefaults objectForKey:kKey]; 
0

使用setObject方法:forKey:不是的setValue:forKey:

在NSUserDefaults的类iPhone

[NSUserDefaults的standardUserDefaults]的setObject: “你的对象” forKey:@”电话”];