스토리보드는 TextField 3개, 버튼 2개로 구성하였다. ID/PWD를 받는 Textfield 각각 1개씩 그리고 저장 버튼, 불러오기 버튼, 불러오기 버튼을 눌렀을 때 ID와 PWD를 표시해줄 TextField 1개.
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
- (IBAction)BtnSave:(id)sender;
- (IBAction)BtnLoad:(id)sender;
@property (weak, nonatomic) IBOutlet UITextField *txtF_ID;
@property (weak, nonatomic) IBOutlet UITextField *txtF_Pwd;
@property (weak, nonatomic) IBOutlet UITextField *txtF_Load;
extern NSString* value;
@end
ViewController.m 파일의 소스 코드이다.
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"[D] viewDidLoad");
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)BtnSave:(id)sender
{
@autoreleasepool {
NSLog(@"[D] BtnSave Clicked...");
// NSString* tmpText = _txtF_ID.text;
// NSString* tmpText2 = _txtF_Pwd.text;
// NSLog(@"[D] ID: %@ Passwd: %@",tmpText, tmpText2);
// NSLog(@"[D] ID: %@ Passwd: %@",_txtF_ID.text, _txtF_Pwd.text);
// [dic setObject:_txtF_ID.text forKey: @"first"];
// self.dic = [NSMutableDictionary dic];
// [dic setString:tmpText forKey:@"First"];
// _txtF_ID.text = [_txtF_ID.text stringByAppendingString:@"This is ID"];
// NSLog(@"[D] Append to text: %@", [_txtF_ID.text stringByAppendingString:_txtF_Pwd.text]);
NSMutableDictionary* dic = [[NSMutableDictionary alloc] init];
[dic setObject:[_txtF_ID.text stringByAppendingString:_txtF_Pwd.text] forKey: @"first"];
// NSString* str = [dic objectForKey:@"first"];
// NSLog(@"[D] Dictionary contents: %@", str);
NSLog(@"[D] Dictionary contents: %@", [dic objectForKey:@"first"]);
[[NSUserDefaults standardUserDefaults] setObject:[dic objectForKey:@"first"] forKey:@"first"];
[[NSUserDefaults standardUserDefaults] synchronize];
// [[NSUserDefaults standardUserDefaults] setObject:dic forKey:@"first"];
// [[NSUserDefaults standardUserDefaults] synchronize];
id value = [[NSUserDefaults standardUserDefaults] objectForKey:@"first"];
NSLog(@"[D] NSUserDefaults Contents: %@", value);
} // end of autoreleasepool
}
- (IBAction)BtnLoad:(id)sender
{
NSLog(@"[D] BtnLoad Clicked...");
NSMutableDictionary* value = [[NSUserDefaults standardUserDefaults] objectForKey:@"first"];
// NSMutableDictionary* value;
// [value objectForKey:@"first"];
NSLog(@"[D] Load NSUserDefaults Contents: %@", value);
_txtF_Load.text = value;
}
@end
수없이 많은 노가다를 거치고 나서 data를 NSDictionary에 넣고 Userdefault로 저장한 후 다시 Userdefault로 data를 불러들이는 걸 할 수 있었다.
스토리보드상에서 TextField에 지워지는 회색 글씨를 띄우려면 attribute inspector 에서 PlaceHolder에 글씨를 써주면 된다.