我是Objective-C和XCode的新手,我遇到了这样的问题。
如何将值正确保存到NSUserDefaults
。
我有价值
[_textFields objectAtIndex:2]).text
尝试这样做
[[[NSUserDefaults standardUserDefaults] setValue:((UITextField *)[_textFields objectAtIndex:2]).text)) forKey:@"Phone"];
[[NSUserDefaults standardUserDefaults] synchronize];
你是如何正确地做到的?
答案 0 :(得分: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
答案 1 :(得分:1)
您正在使用字符串值。您应该使用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];
答案 2 :(得分:1)
使用方法setObject:forKey:
代替setValue:forKey:
在NSUserDefaults
课程中:
[[NSUserDefaults standardUserDefaults] setObject:"Your Object" forKey:@"Phone"];
答案 3 :(得分:0)
如果要在setObject:forKey:
中存储属性列表对象(字典,数组,字符串和数字),则需要使用NSUserDefaults
。 See the docs.