티스토리 뷰
UserDefaults로 구조체 저장
구조체를 UserDefaults에 저장하기 위해서는 인코딩, 디코딩 필요
-> 해당 구조체가 Codable을 채택해야함.
다시말해, 구조체 데이터를 인코더를 통해 인코딩한 값을 UserDefaults에 저장하고, 디코더를 이용해서 디코딩을 한 구조체 데이터를 불러오는 방식으로 진행됨.
인코딩
let encoder = JSONEncoder()
if let encoded = try? encoder.encode(tamagotchiData) {
UserDefaults.standard.setValue(encoded, forKey: "person")
print(encoded)
}
디코딩
// 디코딩해서 데이터가져오기
if let savedData = UserDefaults.standard.object(forKey: "tamagotchi") as? Data {
let decoder = JSONDecoder()
if let tamagotchiData = try? decoder.decode(Tamagotchi.self, from: savedData) {
print(tamagotchiData) // Person(name: "jake", age: 20)
}
}
바이트로 표시된 데이터를 디코더를 통해 디코딩한 결과 위와 같이 원하는 구조체 형태로 값을 가져올 수 있음.
_____________________________________________________________________________________________________
다마고치 과제
-> 설정화면 UI 및 기능 구현
-> 이름 변경 화면 UI 및 기능 구현
-> 첫 화면 조건 구현
-> 상세화면, 선택화면 구현
-> 구조체 수정 및 추가
-> 메인화면 UI 구현
'TIL' 카테고리의 다른 글
[TIL] 2022 / 07 / 25 (0) | 2022.07.26 |
---|---|
[TIL] 2022 / 07 / 24 (0) | 2022.07.24 |
[TIL] 2022 / 07 / 22 (0) | 2022.07.23 |
[TIL] 2022 / 07 / 21 (0) | 2022.07.21 |
[TIL] 2022 / 07 / 20 (0) | 2022.07.21 |
댓글
최근에 올라온 글
- Total
- Today
- Yesterday