일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- cocoapods
- snapkit
- Java
- 코딩테스트
- CoreLocation
- EventKit
- swiftUI
- UIStackView
- android
- SWIFT
- pod install
- format형식
- ios15
- Alert
- kakaomap
- AsyncImage
- ViewModifier
- NotificationCenter
- Kotlin
- segue
- autolayout
- Appearance변경
- programmers
- SwiftUI_Preview_Provider
- alamofire
- 백준
- image
- ios
- MapKit
- UserDefaults
Archives
- Today
- Total
감자주먹밥
[IOS] UserDefaults 알아보기 본문
728x90
앱 개발 공부를 시작하고 여러가지를 하면서 정말 궁금했던게 사용자의 세팅 정보를 그대로 저장해 놓는 방법? 였습니다.
안드로이드를 공부할 땐 알지 못하고 DB를 연결해서 써야하나..? 하고 넘겼었는데 이번 IOS공부를 하면서 LocalDB 비슷한게 있단걸 처음 알았습니다!
"앱 실행 전반에 걸쳐 키-값 쌍을 지속적으로 저장할 수 있는 사용자의 기본 데이터베이스에 대한 인터페이스입니다."
앱 설정 데이터, 로그인 시 아이디 등 단일 데이터를 저장하는데에 적합합니다.
앱이 삭제될 때는 데이터가 함께 사라집니다.
key-value 형태로 저장이 되는데... JSON이 생각나네요... 그냥 JSON 형식으로 저장되는게 맞는 것 같습니다.
UserDefaults는 싱글톤객체로 생성해 줄 필요는 없습니다. 디자인 패턴은 3학년 때 천천히 배우기로...
이제 사용법을 알아보겠습니다!
func saveTasks() {
let data = self.tasks.map {
[
"title": $0.title,
"done": $0.done
]
}
let userDefaults = UserDefaults.standard //UserDefaults 접근
userDefaults.set(data, forKey: "tasks") //key를 통해 저장
}
func loadTasks(){
let userDefaults = UserDefaults.standard // UserDefaults 에 접근
//data 불러오기
guard let data = userDefaults.object(forKey: "tasks") as? [[String:Any]] else {return}
self.tasks = data.compactMap{
guard let title = $0["title"] as? String else {return nil}
guard let done = $0["done"] as? Bool else {return nil}
return Task(title: title, done: done)
}
}
UserDefaults.standard로 UserDefaluts에 접근을 합니다.
set 메서드를 사용해 키와 데이터를 저장하고
object 메서드에 키를 넣어서 데이터를 가져옵니다.
위 코드에서는 배열로 되어있는 데이터를 저장하고 불러오면서 캐스팅을 해 주지만
단일 데이터는 더욱 간단하게 사용할 수 있습니다.
var isOn: Bool = true
UserDefaluts.standard.set(isOn, forKey: "switch")
print(UserDefaluts.standard.bool(forKey: "switch")) //true
userDefaults.removeObject(forKey: "tasks")
데이터를 삭제하는 법은 removeObject 메서드를 사용하여 키를 파라미터로 넘겨주면 삭제가 됩니다!
728x90
'IOS > UIKit' 카테고리의 다른 글
[IOS] DatePicker (0) | 2022.01.23 |
---|---|
[IOS] Tab Bar Controller 사용법 (0) | 2022.01.22 |
[IOS] Alert 알아보기 (0) | 2022.01.13 |
[IOS] TableView 알아보기! (0) | 2022.01.12 |
[IOS] UIStackView 알아보기 (0) | 2022.01.10 |
Comments