궁금한 내용을 검색해보세요!
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
서근 개발노트
티스토리에 팔로잉
SWIFTUI/Grammar

SwiftUI : UserDefaults 정보 수집 및 저장

서근
QUOTE THE DAY

“ 에러 없는 프로그램을 만드는 데는 두가지 방법이 있다. 그런데 세번째 것만 작동한다. ”

- Alan J. Perlis (앨런 J. 펄리스)
Written by SeogunSEOGUN

SwiftUI : UserDefaults 정보 수집 및 저장

UserDefaults

UserDefaults 를 사용하여 사용자 설정을 저장 할 수 있습니다.

 

만약 어플에서 버튼으로 숫자를 4까지 올려놓고, 앱을 재실행 했을때 사용자가 눌렀던 카운트 4가 그대로 이어지는것을 볼 수 있습니다. 일단, 버튼을 눌렀을때 1씩 올라가는 화면을 만들어 보겠습니다.

swift
UNFOLDED
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을 밑의 코드처럼 수정해 줍니다.

swift
UNFOLDED
@State private var tapCount = UserDefaults.standard.integer(forKey: "Tap")

그리고, 버튼 안에 UserDefaults.standard 값을 추가해 줍니다.

swift
UNFOLDED
 UserDefaults.standard.set(self.tapCount, forKey: "Tap")

TIP
 
 

주의 
iOS는 데이터를 영구 저장소에 쓰는 데 약간의 시간이 걸립니다. 실제로 변경 사항을 기기에 저장하는 것이죠.
결과적으로 버튼을 탭한 다음 Xcode에서 앱을 빠르게 다시 실행하면 가장 최근 탭 수가 저장되지 않습니다.

SwiftUI : UserDefaults 정보 수집 및 저장 - UserDefaults

전체 코드

swift
UNFOLDED
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")
}
}
}

 

읽어주셔서 감사합니다🤟

 

 


잘못된 내용이 있으면 언제든 피드백 부탁드립니다.


서근


위처럼 이미지 와 함께 댓글을 작성할 수 있습니다.