Я видел несколько примеров, но не могу понять, что происходит, когда пытаешься сохранить ввод текстового поля и перезагрузить его при перезапуске приложения. У меня есть что-то подобное в моем файле .m (файл .h имеет только <UITextViewDelegate>
);сохранение пользовательских настроек по умолчанию [iOS]
@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 *: å». Неважно, что я спас.
, что проблема в этом – Sport
Попробуйте использовать NSString вместо NSMutableString в viewDidLoad – Firegab
Где runMethod ?? –