inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

SwiftUI의 Property Wrapper(@State, @Binding...)

7강 - @Environment

@Environment 질문 있습니다.

해결된 질문

90

Julie

작성한 질문수 4

1

Environment 값 가져올때 역슬래시 하고 점으로 접금 하고 있는데 역슬래시는 어떤 의미를 갖고 있나요?

ios swift swiftui

답변 1

0

밤낮 코딩

안녕하세요 줄리님!

강의 들어주셔서 감사합니다!

강의평도 달아주셔서 정말 감사드립니다~! :D

 

역슬래시 좀 어려운 문법인데요

스위프트의 keyPath라는 문법입니다.

스트럭트나 클래스의 프로퍼티명을 인자로 넘기고 싶을때 사용해요

import Foundation

struct Person {
    let name: String
    let address: String
}

func printProperty(of person: Person, keyPath: KeyPath<Person, String>) {
    let propertyValue = person[keyPath: keyPath]
    print("\(keyPath) : \(propertyValue)")
}

// 사용 예시
let person = Person(name: "Alice", address: "123 Apple St")

printProperty(of: person, keyPath: \Person.name)     // 출력: name : Alice
printProperty(of: person, keyPath: \Person.address)  // 출력: address : 123 Apple St // 출력: Name: Alice

위의 예제를 보면 printProperty이 두가지 인자를 받고 있는데요

person은 출력의 구조체명

keyPath는 person의 무엇을 출력할지를 인자로 받습니다.

여기서는 \Person.name이나 \Person.address를 받을 수 있는데요

이렇게 구조체나 클래스의 프로퍼티 자체를 인자로 받을 때 키패스를 사용합니다.

 

제 강의 에서는 @Environment(\.colorScheme) 이런식으로 사용했는데요

여기서는 @Environment()가 EnvironmentValues의 프로퍼티를 받는데요. 그걸 조회하기 위해 이 키패스를 받게 됩니다.

다시 말하면

앱의 environment정보들을 EnvironmentValues에 프로퍼티들로 저장되어 있고

예를 들어 다음과 같은 정보들이 저장되어 있습니다.

예시)

EnvironmentValues.colorScheme = "다크 모드 or 라이트 모드"

EnvironmentValues.locale = "ko_KR" (지역정보)

...


이런 정보들이 저장되어 있고 이걸 가져오기위해
@Environment()가 키패스를 인자로 받게 됩니다

진로에 대한 질문...!

0

25

0

Static 선언 시 에러 발생

0

40

1

클로저의 형태로 만들다

0

44

1

Function Types Error

0

36

1

안드로이드 기기 실행 오류

0

47

2

수강연장 가능할까요...

0

57

2

강의에서 사용된 안드로이드 스튜디오 버전을 알고싶어요.

0

57

2

SwiftData 미리보기 미적용

0

54

2

중괄호와 함수

0

57

2

기본 뷰 디자인이 강사님과 다릅니다.

0

54

2

이미지 2x, 3x 질문

0

44

2

강의를 다 듣고난 후

0

71

2

android crud중 c 영상이 12초만 있는 잘린 영상이에요.

0

66

2

수강 기간 연장 문의

0

67

1

수강연장부탁드려도될까요..

0

83

2

Combine Playground 에서 실행 시

0

96

2

70강 - 글로벌 액터로 격리된 Protocol 을 extension 에서 conform 시 타입 본체의 격리 수준 질문

0

76

1

searchable이 화면 하단에 위치해요

0

94

2

Drawing Cycle 관련 질문

0

95

1

앱 제작 시 주로 코드로 작성하시는 이유가 있을까요?

0

131

2

예제 코드가 안나와요

0

108

2

혹시 RxSwift 강의 계획도 있으신지 궁금합니다.

1

124

1

@State 관련 질문입니다

1

280

3

안녕하세요 @EnvironmentObject를 RequestInterceptor에서도 사용할 수 있나요?

0

380

1