[iOS 3주차] 문제해결: UserDefaults에 기본 데이터 타입이 아닌 struct과 같은 복잡한 데이터 타입 저장하기

황석범·2024년 11월 7일
0

내일배움캠프_iOS_5기

목록 보기
14/76

야구게임만들기 과제를 하는 도중에 게임 기록을 누적하여 저장할 수 있게 하는 방법을 찾던중 UserDefaults 를 사용하는 방법을 알게 되었다.

앱을 실행하는 동안 지속적으로 키-값 쌍을 저장하는 사용자의 기본 데이터베이스에 대한 인터페이스입니다.

UserDefaults는 런타임 환경에서 동작하고, 앱이 실행되는 동안 기본 데이터베이스에 접근해 key-value의 형태로 데이터를 기록하거나 가져온다.

하지만 struct 을 넣으면 다음과 같은 에러가 발생한다.

structcodable로 바꿔주고

저장할 때


if let data = try? JSONEncoder().encode(records)

불러올 때


if var records = try? JSONDecoder().decode([GameRecord].self, from: data)

위 처럼 저장하고 불러올 때 JSON 으로 인코딩, 디코딩하였더니 해결이 되었다.

profile
iOS 공부중...

0개의 댓글

관련 채용 정보