ios | ios도 모르고 하이브리드 앱 개발하기 [ 13 NSUserDefaults 사용하여 데이터 저장하고 읽기 ]

2016. 9. 19. 16:20mobile/ios



ios도 모르고 하이브리드 앱 개발하기 [ 13 NSUserDefaults 사용하여 데이터 저장하고 읽기 ]


데이터를 저장하기 위해서는 데이터베이스를 사용해야 하지만


간단한 정보나 변수들을 저장할때 사용할 수 있는 클래스가 있다.


NSUserDefaults 이라는 녀석이다.


Andorid 의 SharedPreferences와 같은 녀석인것 같다.


저장기한은 앱이 삭제되기 전까지

거의 모든 데이터를 저장가능

키:값 으로 저장 및 읽기가 가능


 





NSUserDefaults를 사용하여 데이터를 저장하고 읽어들이는 함수를 구현해 보자


ViewController.h 파일

파일을 읽고 쓰는데 사용할 함수를 선언한다.
1
2
- (id) loadFromUserDefaults:(id)key;
- (BOOL) saveToUserDefaults:(id)object forKey:(id)key;
cs

1# : 파일을 읽을 함수

2# : 파일을 저장하는 함수




ViewController.m 파일

함수를 구현해 보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 데이터 불러오기
- (id) loadFromUserDefaults:(id)key{
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    id returnVal = nil;
    if(userDefaults && key){
        returnVal = [userDefaults objectForKey:key];
    }
    return returnVal;
}
 
// 데이터 저장
- (BOOL) saveToUserDefaults:(id)object forKey:(id)key{
    BOOL returnVal = NO;
    
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
    @synchronized (userDefaults) {
        if(userDefaults && key && object){
            [userDefaults setObject:object forKey:key];
        }else{
            [userDefaults removeObjectForKey:key];
        }
        returnVal = [userDefaults synchronize];
    }
    
    return returnVal;
}
cs
2# : key를 파라미터로 받아서 값을 리턴하는 함수
12# : 값과 key를 파라미터로 받아서 데이터를 저장하는 함수

 





* 사용방법
사용할 key 변수 생성 (왠만하면 상수 사용, 변하지 않아야 함)
1
NSString *key = @"MSG";
cs

데이터를 저장하는 함수
1
[self saveToUserDefaults : @"메시지 내용입니다." forKey : key];
cs


저장된 데이터를 읽어들이는 함수

1
2
NSString *msg = [self loadFromUserDefaults : key];
[self printAlert : @"app start" msg:msg ];
cs

2# : 읽어들인 데이터를 alert 로 출력











 * 경고


IOS에 무지한 상태에서 구글링만으로 앱 개발 및 포스팅이 진행됨


누구나 따라할 수 있겠지만 결코 완벽한 정답이 아닐 수 있음


아주 주관적인 입장에서의 포스팅임