[iOS 6주차] 날씨 앱 만들기

황석범·2024년 12월 2일
3

내일배움캠프_iOS_5기

목록 보기
40/76

날씨 앱 만들기

강의를 들으면서 실습을 열심히 따라해보다가 에러가 발생했다.


JSON 디코딩에 실패했단다.


서버에서 받은 JSON을 뜯어봐도 모르겠다.


디버깅해봐도 error가 nil이 찍힌다. 코드를 수정해보자.


catch문에서 error를 찍으면 에러가 이쁘게 나온다. temp_Max 값이 nil 값이 와서 그런 것 같다.


nil 값이 들어오는 값에 옵셔널로 바꿔주고


최고 온도가 nil이면 0으로 출력하게 바꾸어 주었더니 디코딩이 잘 된걸 볼 수 있다.


이렇게 해줘도 된다.

  1. decoder.container(keyedBy:)로 JSON 데이터를 key-value 형태로 접근 가능하도록 컨테이너를 만듭니다.
  2. 각 key에 대해 decodeIfPresent로 JSON 데이터를 디코딩합니다.
  • key가 없거나 값이 null이면 nil 반환.
  • nil인 경우 기본값 0.0 할당.
  1. 디코딩된 값을 프로퍼티에 저장합니다.

profile
iOS 공부중...

4개의 댓글

comment-user-thumbnail
2024년 12월 3일

아니 벌써.. 날씨앱을 만드셔,,

1개의 답글
comment-user-thumbnail
2024년 12월 5일

let data = Data()

do {
let decoded = try JSONDecoder().decode(Int.self, from: data)
print("decoded => (decoded)")
} catch DecodingError.dataCorrupted(let context) {
debugPrint(context)
} catch {
print(error.localizedDescription)
}
이런식으로 콘솔에서 바로 보실 수 있어용

https://developer.apple.com/documentation/foundation/jsondecoder/2895189-decode

1개의 답글

관련 채용 정보