반응형
SwiftUI는 개발 단계에서 라이브 프리뷰를 통해 코드의 모습을 즉석에서 확인할 수 있습니다. 그런데 @Binding
처럼 외부의 값을 대여해 주어야 하는 경우 샘플 프리뷰를 작성할 때 약간의 곤란함이 있습니다.
728x90
예를 들어 아래의 예제가 있습니다.
import SwiftUI
struct SomeView: View {
@Binding var name: String
var body: some View {
Text("Hello \(name)")
}
}
struct SomeView_Previews: PreviewProvider {
static var previews: some View {
SomeView(name: "John")
}
}
위에서 SomeView_Previews
구조체에서 SomeView
인스턴스를 생성하면서 넘기는 name
파리미터의 값이 문제입니다. 위의 코드를 빌드하면 아래와 같은 오류가 발생하기 때문입니다.
Cannot convert value of type 'String' to expected argument type 'Binding<String>'
다행히도 이 문제의 해결은 매우 쉽습니다. Binding
타입에서 제공하는 특수한 정적 메서드인 .constant
를 활용할 수 있습니다. 따라서 위의 SomeView_Previews
의 내용을 아래와 같이 수정할 수 있습니다.
struct SomeView_Previews: PreviewProvider {
static var previews: some View {
SomeView(name: .constant("John"))
}
}
.constant
를 이용하면 @State
등을 이용하지 않고도 샘플 프리뷰로 사용할 고정 값을 이렇게 넘길 수 있습니다.
728x90
반응형
'기술적인 이야기 > 애플 플랫폼 개발' 카테고리의 다른 글
SwiftUI에서 경고 팝업(Alert) 표시하기 (418) | 2021.01.07 |
---|---|
Xcode 12.3에서 발생하는 Fat Framework 링크 오류 문제 (365) | 2020.12.17 |
SwiftUI에서 SF Symbols 사용하기 (351) | 2020.11.18 |
Xcode의 부산물(?) 청소 쉽게 하기 (227) | 2020.11.16 |
SwiftUI macOS 앱에서 타이틀 바와 툴바가 통합된 윈도우 구현하기 (359) | 2020.11.12 |
댓글