야구게임만들기 과제를 하는 도중에 게임 기록을 누적하여 저장할 수 있게 하는 방법을 찾던중
UserDefaults
를 사용하는 방법을 알게 되었다.
앱을 실행하는 동안 지속적으로 키-값 쌍을 저장하는 사용자의 기본 데이터베이스에 대한 인터페이스입니다.
UserDefaults는 런타임 환경에서 동작하고, 앱이 실행되는 동안 기본 데이터베이스에 접근해 key-value의 형태로 데이터를 기록하거나 가져온다.
하지만
struct
을 넣으면 다음과 같은 에러가 발생한다.
struct
을codable
로 바꿔주고
저장할 때
if let data = try? JSONEncoder().encode(records)
불러올 때
if var records = try? JSONDecoder().decode([GameRecord].self, from: data)
위 처럼 저장하고 불러올 때
JSON
으로 인코딩, 디코딩하였더니 해결이 되었다.