ios - 保存用户默认值 [iOS]

标签 ios objective-c nsuserdefaults c4

我看到了几个示例,但在尝试保存我的文本字段输入并在重新启动应用程序时重新加载它时,我无法弄清楚出了什么问题。 我的 .m 文件中有这样的东西(.h 文件只有一个 <UITextViewDelegate> );

@implementation C4WorkSpace{
    UITextView *textField;
    C4Button *okButton;
    C4Label *savedText;
}

-(void)setup {
    //add text field
    CGRect textViewFrame = CGRectMake(20.0f, 20, self.canvas.width-40, 124.0f);
    textField = [[UITextView alloc] initWithFrame:textViewFrame];
    textField.returnKeyType = UIReturnKeyDone;
    [textField becomeFirstResponder];
    textField.delegate = self;
    //textField.hidden=true;

    [self.view addSubview:textField];

    okButton=[C4Button buttonWithType:ROUNDEDRECT];
    [okButton setTitle:@"Save" forState:NORMAL];
    okButton.center=self.canvas.center;
    [self.canvas addUIElement:okButton];
    [okButton runMethod:@"saveDefault" target:self forEvent:TOUCHUPINSIDE];

    savedText=[C4Label labelWithText:@"default"];
    savedText.center=CGPointMake(self.canvas.center.x, self.canvas.center.y+40);
    [self.canvas addLabel:savedText];
}
-(void)saveDefault{
    NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];

    [defaults setObject:textField.text forKey:@"userName"];
    [defaults synchronize];
    C4Log(@"defaults: %@",defaults);
    C4Log(@"defaults: %@", [defaults objectForKey:@"userName"]);
    savedText.text=textField.text;
}
-(void)viewDidLoad{
    NSMutableString *text=[[NSUserDefaults standardUserDefaults] objectForKey:@"userName"];
    C4Log(@"loadedText:%s", text);
    textField.text=text;
    savedText.text=text;
}
@end

我不确定到底出了什么问题,但是当我重新启动应用程序时,loadedText 始终是:“¯8*:å”。我保存了什么并不重要。

最佳答案

我发现最简单的解决方案是设置


ViewDidLoad

text=[[NSUserDefaults standardUserDefaults] objectForKey:@"userName"];

并在设置

if (text!=nil) {
        textField.text=text;
    }

关于ios - 保存用户默认值 [iOS],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20680725/

相关文章:

ios - 数组计数(数组内)以确定 UIView 宽度

ios - 在 Metal 内核中循环展开

iphone - 围绕屏幕外的一个点旋转 UIImageView? (uiImageView 的中心

ios - NSUserDefaults和.plist文件有什么区别

ios - 同步 NSUserDefaults 时崩溃

iPhone - 构建一个看起来像这样的单元

ios - 如何使用NSPredicate过滤数组,以使一个属性的值大于另一个属性的值?

iphone - Settings.bundle 与 NSUserDefaults

ios - 如何本地化全局字符串?

objective-c - iPad 上的多个呈现 View Controller 和旋转