반응형
UserDefaults
UserDefaults
를 사용하여 사용자 설정을 저장 할 수 있습니다.
만약 어플에서 버튼으로 숫자를 4
까지 올려놓고, 앱을 재실행 했을때 사용자가 눌렀던 카운트 4
가 그대로 이어지는것을 볼 수 있습니다. 일단, 버튼을 눌렀을때 1
씩 올라가는 화면을 만들어 보겠습니다.
struct ContentView: View {
//tapCount는 0 으로 지정
@State private var tapCount = 0
var body: some View {
Button("Tap count: \(tapCount)") {
//버튼이 클릭될때마다 "1"씩 증가
self.tapCount += 1
}
}
}
이제, UserDefaults
를 이용해 정보를 수집하고 저장하는 코드를 만들어 보겠습니다.
우선 tapCount
에서 설정해준 0
을 밑의 코드처럼 수정해 줍니다.
@State private var tapCount = UserDefaults.standard.integer(forKey: "Tap")
그리고, 버튼 안에 UserDefaults.standard
값을 추가해 줍니다.
UserDefaults.standard.set(self.tapCount, forKey: "Tap")
TIP
주의
iOS는 데이터를 영구 저장소에 쓰는 데 약간의 시간이 걸립니다. 실제로 변경 사항을 기기에 저장하는 것이죠.
결과적으로 버튼을 탭한 다음 Xcode
에서 앱을 빠르게 다시 실행하면 가장 최근 탭 수가 저장되지 않습니다.
전체 코드
struct ContentView: View {
//@State private var tapCount = 0 을 밑에 코드처럼 수정해준다.
@State private var tapCount = UserDefaults.standard.integer(forKey: "Tap")
var body: some View {
Button("Tap count: \(tapCount)") {
self.tapCount += 1
UserDefaults.standard.set(self.tapCount, forKey: "Tap")
}
}
}
읽어주셔서 감사합니다🤟
'SWIFTUI > Grammar' 카테고리의 다른 글
SwiftUI : #1 Binding이란 무엇인가? (0) | 2021.02.11 |
---|---|
SwiftUI : State에 대해 자세히 알아보기 (0) | 2021.02.10 |
SwiftUI : 삼항 연산자 / IF (0) | 2021.01.25 |
SwiftUI : @State, @ObservedObject / Struct를 Class로 (0) | 2021.01.25 |
SwiftUI : UIKit와 SwiftUI 구성요소 비교 (3) | 2021.01.24 |