ios | ios도 모르고 하이브리드 앱 개발하기 [ 13 NSUserDefaults 사용하여 데이터 저장하고 읽기 ]
2016. 9. 19. 16:20ㆍmobile/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에 무지한 상태에서 구글링만으로 앱 개발 및 포스팅이 진행됨 누구나 따라할 수 있겠지만 결코 완벽한 정답이 아닐 수 있음 아주 주관적인 입장에서의 포스팅임 |