티스토리 뷰
안녕하세요. 도미닉입니다.
오늘은 스위프트에서 구조체 모델을 UserDefaults 에 저장하고 불러오는 방법을 공유하고자 합니다.
API 통신을 통해 JSON 을 많이 주고 받을 것입니다.
서버로부터 받은 JSON 을 모델 구조체로 변환하여 사용할 수 있습니다.
이 데이터를 현재 화면 말고 다른 화면들에서 혹은 다음 Flow 에서 사용하게 될 경우에 이 데이터를 UserDefaults 에 저장하고 필요한 뷰에서 불러와서 사용할 수 있습니다.
만약 이 구조체 모델을 바로 UserDefaults 에 저장하고자 하면 아래와 같은 오류가 발생합니다.
UserDefaults.standard.set(withdrawalFlow, forKey: "WithdrawalFlow")
이런 경우 아래와 같이 데이터 타입으로 변환하여 저장하면 잘 저장이 됩니다.
if let withdrawalFlowData = try? JSONEncoder().encode(withdrawalFlow) {
UserDefaults.standard.set(withdrawalFlowData, forKey: "WithdrawalFlow")
}
저장된 데이터는 아래와 같이 불러와서 다시 구조체로 변환을 해줘야 합니다!
guard let withdrawalFlowData = UserDefaults.standard.object(forKey: "WithdrawalFlow") as? Data, let withdrawalFlow = try? JSONDecoder().decode(WithdrawalFlow.self, from: withdrawalFlowData) else {
return
}
'IT > Swift' 카테고리의 다른 글
SwiftUI 에 NSInternalInconsistencyException 오류 해결 방법 - Attempted to scroll the collection view to an out-of-bounds item (0) when there are only 0 items in section 0. (0) | 2023.05.18 |
---|---|
SwiftUI 에서 삼각형을 그리는 방법(역삼각형, 말풍선 포함) (0) | 2022.11.03 |
스위프트 이니셜라이저(초기화) (0) | 2021.06.17 |
swift 접근제어자(Access Control) (0) | 2021.06.04 |
Swift 에서 클로저와 고차함수 (0) | 2021.01.13 |
- Total
- Today
- Yesterday
- Swift
- 프로그래밍
- exercise
- Xcode
- terascan
- 반복문
- 애플
- IOS
- 리눅스
- 스위프트
- 형용사
- 매트랩
- 왕초보 영단어1
- 함수
- 뇌를 자극하는 C 프로그래밍
- Matlab
- 테라스캔
- 프로그램
- MySQL
- 연습문제
- database
- 단어
- 시원스쿨
- 데이터베이스
- 배열
- 영어
- Apple
- C
- 뇌를 자극하는 C프로그래밍
- 포인터
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |