2022. 12. 7. 22:17ㆍIOS
UserDefaults
앱의 기본 데이터베이스에 영구적으로 데이터를 저장하는 인터페이스이다. 흔히들 생각하는 DB인 sql과 다르게 대량의 데이터를 저장하기에는 적합하지 않다. 단지 사용자 기본 설정과 같은 단일 데이터 값을 저장하기에 적합하다. UserDefaults는 데이터를 [데이터, key] 형태로 저장한다. key는 String 형태이며 데이터는 Float, double, NSData, NSString등의 여러타입이 가능하다. 앱에 저장되는 것이다 보니 앱을 재실행하여도 사라지지 않는다는 장점이 있다. (단, 앱을 삭제한다면 지워진다.)
UserDefaults의 SAVE / LOAD
UserDefaults도 데이터베이스의 역할을 하다보니 save함수와 load 함수가 존재한다.
먼저 set 매서드는 이용해 해당 데이터와 key 형태로 저장할 수 있다. 앞서 말했듯 데이터는 Float, double, NSData, NSString등의 여러타입이 가능하다. key값은 String으로 load할 때 해당 데이터에 접근하기 위해 필요하다.
UserDefaults.standard.set(데이터, forKey: key)
key값과 데이터의 타입만 알 고 있다면 userDefault에 저장된 값을 손쉽게 load할 수 있다.
UserDefaults.standard.타입(forKey: 저장했던 key)
활용 예시
예시를 통해 확실하게 알아보자! 다음과 같이 Diary라는 구조체가 있고 Diary배열로 구성된 DiaryList를 UserDefaults에 save하는 saveDiaryList 매서드와 load하는 loadDiaryList 매서드를 만들려고 한다.
그렇다면 set메서드를 사용하되, DiaryList를 map으로 전환시켜 저장할 수 있다. 이때 key는 "diaryList"로 저장했다.
load할 때에는 저장할 때 사용한 key값인 "diaryList"와 object타입으로 받아올 수 있다. 가져온 값은 다시 diaryList로 만들어 주었다.
전체코드
'IOS' 카테고리의 다른 글
[IOS / Swift] Codabler을 이용한 encoding, decoding (0) | 2022.12.14 |
---|---|
[IOS/Swift] NotificationCenter 사용하기 (0) | 2022.12.08 |
[IOS] UIDatePicker 사용하기(DateFormatter) (0) | 2022.12.06 |
[IOS] UITextView 테두리칠하기(border) (0) | 2022.12.05 |
[IOS] UITableView(2) (2) | 2022.12.03 |