참고) 공식문서에 대한 번역에 가까움.
공식문서 상에 다음과 같이 적혀있습니다.
Environment
a property wrapper that reads a value from a view's environment.
-> 프로퍼티 를 감싸는 것인데 (that절, 값을 읽을 수 있는데 그 값은 View의 환경(설정이라고 오역하는게 받아들이기 쉬울 수 있습니다.))
정리하면, 뷰의 설정해야하는 값들이 있는데, 그 값들을 읽어올 수 있게해주는 썸띵? 정도로 정리할 수 있을 것 같아요.
Environment property wrapper
는 뷰의 속성설정 값을 읽어올 때 사용해라. 그것들은 keypath를 사용해서 값을 읽어올 수 있도록 지정해줘라.
(근데 이 keypath가 뭣이냐. "EnvironmentValues"들이다.)
아 그러면 EnvironmentValues 가 뭔지 알아야겠죠?
퉁치고 이해하자면, 뷰의 속성 중 하나입니다. 이렇게 말하면 이해가 부족할 수 있으니 예시를 찾아봤어요!(물론 공식문서)
상당히 많이 있지만 몇 개만 작성할게요.
Accessing Color Schemes)
colorScheme, ColorScheme, colorSchemeContrast, ColorSchemeContrast
Accessing View Settings)
calendar, edithMode, isEnabled, locale, PresentationMode, timeZone
등등 있습니다.
아마 여기 중 하나의 값들 중 하나를 선택하여 설정하는 것이겠죠?
작성된 사용예시는 다음과 같습니다.
@Environment(\.colorScheme) var colorScheme: ColorScheme
이렇게 contentView에 정의를 할겁니다. 그리고 body에서 적절한 시기에 이 속성값들을 활용하겠죠? 아래처럼요.
if colorScheme == .dark { // Checks the wrapped value.
DarkContent()
} else {
LightContent()
}
나머지 공식문서의 내용은
environment(_:_:)메소드를 활용해서
environment values
를 보고 싶다면 EnvironmentValues를 참고해라(위에서 예시든 것의 출처)EnvironmentKey
(protocol)를 볼 수 있도록.EnvironmentKey
(protocol) 에 대해서는 추후에 새로운 글로 올리겠습니다!
environment
를 떠올리면 됩니다. 이후 검색을 하면서 기억들을 리마인드하시면 직면한 문제를 해결할 수 있을 겁니다!