[SwiftUI] Tutorials - BuildingListsAndNavigation
SwiftUI Tutorial의 두번째 강의인 BuildingListsAndNavigation를 진행하였다.
점점 많아지는 함수와 프로토콜들에 하나씩 짚어가며 넘어가니 시간이 꽤 걸렸다.
튜토리얼의 과정은 친절하지만 변수 이름이 너무나 헷갈렸다.
Landmark
, landmarks
, landmark
등등 이름 짓기의 중요성을 깨달았다.
특히 중간에 갑자기 에러가 나서 무엇이 문제인가 한참을 찾았었다.
처음에는 에러의 내용을 읽고 .json
파일을 디코드 하는 과정에서 문제가 생긴것으로 보였다.
그래서 눈을 크게 뜨고 코드를 봤지만 문제점을 찾을 수 없었다.
그러다 디코딩 과정에서는 문제가 없다고 판단하고 json데이터를 정리? 하는 곳에서 문제가 있을 것이라고 생각하였고
관련 코드를 읽다가 문제의 원인을 찾을 수 있었다.
바로 이부분에서 경도를 뜻하는 longitude
를 longtitude
라고 오타를 낸 것이다.
컴파일러에서 빨간줄로 에러를 표시해주지 않은 이유는 Coordinate
구조체에도 변수를 longtitude
라 선언했기 때문이다.
그러면 어차피 longtitude
변수에 든 Double 값이 중요한 것이지, 변수의 이름이 달라서 에러가 생기나? 싶었는데
파라미터의 longtitude
의 타입을 찾아보니 또 Double값이 아니라 CLLocationDegrees
타입이다.
이번엔 CLLocationDegrees
정의를 찾아보니 typealias
(타입 별칭)가 사용되었었다.
사실 문법적으로 정확히 이해는 안가지만 CLLocationDegrees
구조체에 파라미터가 longitude
로 정의되어 있으니
변수 이름을 고정적으로 사용해야 한다고 이해하고 넘어갔다.
완벽하게 이해하지 못하고 넘어간 부분이 많았고 이리저리 혼자 만져보며 복습이 필요할 것 같다.