Navigation Link를 통해 이동한 상세 페이지에서는 우측 사진과 같이 하단의 Tab bar를 숨기고 싶습니다. 이 때 이동한 페이지에 .toolbar(.hidden, for: .tabBar) 을 사용하면 Tab bar를 숨길 수 있습니다. var body: some View { ZStack { Color.pink.ignoresSafeArea() LoadingView(isLoading: self.movieDetailState.isLoading, error: self.movieDetailState.error) { self.movieDetailState.loadMovie(id: self.movieId) } if movieDetailState.movie != nil { MovieDetailListVie..
에러 상황 Http 통신을 통해 서버에서 데이터를 받아오는 중에 발생한 에러입니다. 수신한 Json 형식의 데이터를 decode하는 과정에서 문제가 발생했습니다. 즉, do 문에서 오류가 발생해서 catch 문으로 넘어가는 상황입니다. import Foundation func getNews(completion: @escaping (News) -> Void) { print("hello") guard let url = URL(string: "https://api.lil.software/news") else { fatalError("URL could not be constructed") } URLSession.shared.dataTask(with: url) { (data, response, error) in ..
안녕하세요. 오늘은 클로저에 대해 알아보도록 하겠습니다! 클로저란? 독립적으로 실행 가능한 코드 블럭으로 이름 없는 익명 함수라고 볼 수 있습니다. 함수와 유사한 기능을 제공하지만 함수와 달리 직접적인 이름을 가지진 않습니다. func add(a: Int, b: Int) -> Int { return a + b } // 함수 let add: (Int, Int) -> Int = { (a, b) in return a + b } // 클로저 클로저는 다음과 같이 중괄호 '{}'로 둘러싸인 코드 블럭이며 함수와 비슷한 모습을 하고 있습니다. 위 코드에서는 편의를 위해 클로저를 'add'라는 상수에 할당한 모습입니다. 클로저 특징 1. 변수 또는 상수 캡처 클로저가 생성된 시점에서 주변 범위에 있는 변수나 상수의 ..