일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 27 | 28 |
29 | 30 | 31 |
- HTTP
- unreal
- Android O Preview
- BLOCK
- 안드로이드 개발 레벨업 교과서
- android studio
- Unchecked Exception
- Google Cloud Messasing
- Activity 수명 주기
- NSURLConnection
- 배포
- gradle
- xcode
- 다른 앱에서 열기
- Google Cloud Messasging
- Android
- ios9
- signing
- 트위터
- GCM
- AccountManager
- service
- ios
- 페이스북
- 카카오톡
- In-app Billing
- Push
- Android O
- contentprovider
- 데이터 공유
- Today
- Total
노블의 개발이야기
[iOS] NSUserDefaults 본문
NSUserDefaults 사용하기
NSUserDefaults 클래스는 공통으로 사용되는 Default Property를 관리한다.
CoreData, SQLite, File 보다 간단하게 사용가능하다.
저장 가능한 클래스 타입은 NSData, NSString, NSNumber, NSDate, NSArray, NSDictionary 만을 지원한다.
다른 타입의 클래스 인스턴스를 저장하기 위해서는 NSKeyedArchive, NSKeyedUnarchive를 이용한 Serialization(직렬화) 과정을 거쳐야한다.
Load
+ (id)loadFromUserDefaults:(id)key {
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
id returnVal = nil;
if (userDefaults && key) {
returnVal = [userDefaults objectForKey:key];
}
return returnVal;
}
Save
+ (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;
}
위 코드는 Thread Safe 한 코드를 구현해 두었는데 굳이 그럴 필요없이 간단히
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
인스턴스를 받아 NSDictionary 와 동일하게 사용하면 된다.
저장이 필요할 경우 [userDefaults synchronize]를 호출하면 된다.
NSUserDefaults 는 어플의 업데이트와 상관없이 설치되면 삭제될 때까지 유지된다.
[참고]
[iOS] NSUserDefaults 사용하기 [가벼운 데이터 저장하기]
'iOS' 카테고리의 다른 글
[iOS] GCD(Grand Central Dispatch) 사용하기 (0) | 2015.04.23 |
---|---|
[IOS] ARC - Toll-Free Bridging (348) | 2015.04.23 |
[iOS] 네트워크 상태 체크 (0) | 2015.04.23 |
[iOS] NSString에 URL Encoding과 URL Decoding 메소드 추가하기 (0) | 2015.04.20 |
[iOS] KeyChain (0) | 2015.04.16 |