0

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

您如何正确地将值保存到NSUserDefaults.

我有价值

[_textFields objectAtIndex:2]).text

并试图做到这一点

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

你如何正确地做到这一点?

4

4 回答 4

2

使用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
于 2012-10-25T05:36:04.187 回答
1

您正在使用字符串值。您应该使用 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];
于 2012-10-25T06:17:32.463 回答
1

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

NSUserDefaults课堂上:

[[NSUserDefaults standardUserDefaults] setObject:"Your Object" forKey:@"Phone"];
于 2012-10-26T06:11:57.430 回答
0

setObject:forKey:如果您想将属性列表对象(字典、数组、字符串和数字)存储在NSUserDefaults. 请参阅文档。

于 2012-10-25T05:34:53.850 回答