티스토리 뷰

이번에는 UserDefault 에 대해 알아볼까 합니다.

 

사실 굉장히 많이 쓰이고 간단하게 쓸 수 있는 편리한 부분인데

따로 정리를 해본적이 없더라고요. 

 

그래서 한번 해볼까 합니다. 

 

* UserDefault ? 

주로 앱을 끄고 다시 실행한 후에도 간단한 데이터가 남아있도록 해주는 도우미입니다.

ex) 설정 값, 유저 ID, 첫 실행 여부, 로그인 여부 등

 

https://developer.apple.com/documentation/foundation/userdefaults

공식의 말을 빌려 설명하면 

앱 실행 시 지속적으로 키-값 쌍을 저장하는 사용자의 기본 데이터베이스에 대한 인터페이스입니다.

 

라고 적혀있네요.

일반적인 Dictionary 형태라고 생각하시면 편합니다. 

 

이때 키 값은 반드시 String 이어야 합니다!(값은 무슨 타입이든 상관없어요!)

 

* 사용 이유

일반적으로 앱을 사용중 껐다 켰는데 입력하거나 설정한 것들이 전부 사라지면

앱을 사용할때 많이 불편하겠죠? 

앱을 킬때마다 ID를 입력하거나 기존에 입력한 정보들을 간단히 저장할 때 많이 씁니다.

혹은 사용자가 해당 앱을 설치 후 처음 이용할때만 특정 이벤트를 발생시키고 싶을때도 쓰인답니다.

단 사용자가 앱을 삭제해버리면 통으로 같이 사라지니 주의해주세요.

* 키-값?

여러분들이 어떤 데이터를 저장하려할때 이름(key)을 부여해서 저장하고 해당 이름(key)로 찾아서 

데이터를 꺼내쓸수있다는 의미입니다. 

(딕셔너리 타입을 사용해본적있는 분들은 이해하기 쉬우실겁니다. )

 

이제 각 대표적인(?) 타입 별로 저장하고 빼는 법을 알아봅시다.

 

* 저장하는 방법(모든 타입 동일!)

// 저장데이터 안에 원하는 모든 타입 넣기 가능
UserDefaults.standard.set("저장데이터", forKey: "키값")

 

*꺼내는 방법

 

* Int / Float / Double / Bool / URL / String / Array([Any]) / Dictionary([String:Any])

// Int
UserDefaults.standard.integer(forKey: "키값")

//Float
UserDefaults.standard.float(forKey: "키값")

//Double
UserDefaults.standard.double(forKey: "키값")

//Bool
UserDefaults.standard.bool(forKey: "키값")

//URL
UserDefaults.standard.url(forKey: "키값")

// String 
UserDefaults.standard.string(forKey: "키값")

// 배열(Array) 
UserDefaults.standard.array(forKey: "키값")

// 딕셔너리(Dictionary)
UserDefaults.standard.dictionary(forKey: "키값")

* Any

// Any 로 나오게 됩니다.
UserDefaults.standard.object(forKey: "키값")

// 원하시는 타입이 있으시면 아래처럼 해주시면 됩니다.
UserDefaults.standard.object(forKey: "키값") as? 타입

 

*삭제하는법 (모든 타입 동일)

UserDefaults.standard.removeObject(forKey: "지우고 싶은 데이터의 키값")

 

기본적인 부분이지만 굉장히 자주 쓰이는 부분이라 

한번 정리해보았습니다. 

 

도움이 되었으면 좋겠네요. 

 

오늘도 파이팅입니다.

댓글