Objective c nsuserdefaults中的设置值

Objective c nsuserdefaults中的设置值,objective-c,ios,cocoa-touch,Objective C,Ios,Cocoa Touch,我是Objective-C和XCode的新手,我遇到过这样的问题 如何将值正确保存到NSUserDefaults 我在这方面很有价值 [_textFields objectAtIndex:2]).text 并试图做到这一点 [[[NSUserDefaults standardUserDefaults] setValue:((UITextField *)[_textFields objectAtIndex:2]).text)) forKey:@"Phone"]; [[NSUserDefault

我是Objective-C和XCode的新手,我遇到过这样的问题

如何将值正确保存到
NSUserDefaults

我在这方面很有价值

[_textFields objectAtIndex:2]).text
并试图做到这一点

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

如何正确操作?

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

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

使用
setObject:forKey:
而不是
setValue:forKey:

[[[NSUserDefaults standardUserDefaults] setObject:((UITextField *)[_textFields objectAtIndex:2]).text)) forKey:@"Phone"];
更新: 如果数组中确实有该文本字段,那么代码将起作用。下面是逐步分解的代码,以使其更加清晰:

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

使用
setObject:forKey:
代替
setValue:forKey:

[[[NSUserDefaults standardUserDefaults] setObject:((UITextField *)[_textFields objectAtIndex:2]).text)) forKey:@"Phone"];
更新: 如果数组中确实有该文本字段,那么代码将起作用。下面是逐步分解的代码,以使其更加清晰:

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

您正在使用字符串值。您应该使用setObjectForKey(保存)和objectForKey(读取)。这里有一个例子

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];

您正在使用字符串值。您应该使用setObjectForKey(保存)和objectForKey(读取)。这里有一个例子

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];

使用方法
setObject:forKey:
代替
setValue:forKey:

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

[[NSUserDefaults standardUserDefaults] setObject:"Your Object" forKey:@"Phone"];

使用方法
setObject:forKey:
代替
setValue:forKey:

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

[[NSUserDefaults standardUserDefaults] setObject:"Your Object" forKey:@"Phone"];

我还想知道如何正确地(在语法上)执行它,因为我描述的集合值是完全错误的:)嘿,这和我刚才做的一模一样。我想现在就可以了。谢谢你的时间帮助。我还想知道如何正确地(在语法上)完成它,因为我描述的集合值是完全错误的:)嘿,这和我刚才做的一模一样。我想现在就可以了。谢谢你花时间帮忙。