스토리보드는 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에 글씨를 써주면 된다. 


Posted by 知彼知己百戰不殆
,