본문 바로가기

Computer

iPhone NSUserDefaults 사용하기


The NSUserDefaults class provides a programmatic interface for interacting with the defaults system.
The defaults system allows an application to customize its behavior to match a user’s preferences.

NSUserDefaults Class 는 하나의 App 에서 공통적으로 사용하는 Default property 를 관리하는 클래스입니다.

property 로 관리하기 때문에 Key-Value 코딩에 쉽게 사용할 수 있으며,
Coredata 나 Sqlite 를 사용하는 것 보다 가볍게 사용이 가능합니다.
그러므로 로그인 정보라던지, Custom 설정에서의 정보는 NSUserDefaults 에 넣으면 간단하게 사용할 수 있습니다.

NSUserDefaults 에서 사용하는 property 의 경로는 아래와 같습니다.

Simulator : ~/Library/Application Support/iPhone Simulator/3.1/Applications/BBEC66FA-E615-4B83-8A35-6F48C2AC23D0/Library/Preferences/appid.plist

iPhone : /var/mobile/Applications/08258381-0BC1-4322-943E-F2708764612A/Library/Preferences/appid.plist


예로 plist 파일을 보게 되면 아래와 같이 Dictionary, Array 등의 타입이 저장 가능합니다.




이번에는 UserDefaults 를 사용하는 코드를 보도록 하겠습니다.

+ (BOOL) saveToUserDefaults:(id)object forKey:(id)key{

BOOL reVal = NO;

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

@synchronized(userDefaults){

if (userDefaults && key && object) {

[userDefaults setObject:object forKey:key];

}else {

[userDefaults removeObjectForKey:key];

}

reVal = [userDefaults synchronize];

}

return reVal;

}


위는 plist 에 저장을 하는 부분입니다.

[NSUserDefaults standardUserDefaults] 객체에 Key-Value 로 저장을 하게되며,

synchronize 를 하면 property 파일에 저장이 됩니다.



+ (id) loadFromUserDefaults:(id) key{

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

id val = nil;

if (userDefaults && key) {

val = [userDefaults objectForKey:key];

}

return val;

}


위는 plist 에서 Vaule를 가져오는 부분으로 NSUserDefaults 를 마치 NSDictionary 처럼 똑같이 사용이 가능합니다.




NSUserDefaults 는 어플의 업데이트와 상관없이 설치되면 삭제할때까지 유지가 됩니다.



'Computer' 카테고리의 다른 글

iPhone - Delegate 만들기 - 2  (0) 2010.05.25
iPhone - Delegate 만들기 - 1  (0) 2010.05.25
iPhone Property list - info.plist 에 추가하는 Property  (0) 2010.05.24
[Ubuntu] SVN Client 설정  (2) 2008.08.04
SSH 설치  (0) 2008.07.30