Apple Developer Documentation
developer.apple.com
2. Adopting New API Features
각 SDK 버전은 새로운 기술, 구조, 언어 특성을 포함한다. 이 글에서는 호환성을 유지하면서 API를 적용하는 방법에 대해 알아보자.
Setting a Deployment Target
Xcode 프로젝트의 각 프로젝트에는 앱을 실행할 수 있는 운영체제의 초기 버전을 지정하는 배포 대상 설정이 있다. 이 설정은 앱을 개발하는 데 사용할 수 있는 프레임워크 버전을 결정한다. 새 기능, 또는 프레임 워크를 채택하려는 경우 이 설정을 변경할 수 있다.
이 프로젝트는 iOS 14.0의 배포 목표를 갖고 있다. 즉, iOS 14.0 이상을 실행하는 모든 장치에서 앱을 실행할 수 있다.
iOS 15.0에 도입된 listRowSeparator(_: edge:) 수정자를 사용하여 ScrumsList 에서 구분자를 숨긴다고 가정하면, 수정자를 추가하면 Xcode는 iOS 15 이상에서만 사용할 수 있기 때문에 컴파일러 오류를 표시하지만 앱은 여전히 iOS 14 를 지원합니다. 오류를 수정하려면 Scrumdinger의 배포대상을 iOS 15 으로 설정해야한다.
Checking for an Operating System Version
사용 가능한 조건을 사용하여 이전 버전의 호환성을 유지할 수 있다.
struct ScrumsListSeparator: ViewModifier {
func body(content: Content) -> some View {
if #available(iOS 15, *) {
content
.listRowSeparator(.hidden)
} else {
content
}
}
}
#available을 사용하면 특정 버전의 운영체제에 대한 코드를 실행할 수 있다. 다음 예제의 보기 한정자는 iOS 15.0 이상을 실행하는 장치에만 listRowSeparator(_:edges:) 한정자를 적용합니다.
@available 속성을 사용하여 특정 운영 체제에서 사용할 수 있는 함수 또는 전체 유형을 표시할 수 있다. 아래에 정의된 기능은 iOS 15.1 이상에서만 액세스할 수 있다.
@available(iOS 15.1, *)
func setupGroupSession() {...}
'iOS > iOS App Dev Tutorials' 카테고리의 다른 글
[iOS App Dev Tutorials] SwiftUI - Persistence and Concurrency (4) (0) | 2022.05.18 |
---|---|
[iOS App Dev Tutorials] SwiftUI - Persistence and Concurrency (3) (0) | 2022.05.18 |
[iOS App Dev Tutorials] SwiftUI - Persistence and Concurrency (1) (0) | 2022.05.18 |
[iOS App Dev Tutorials] SwiftUI - State Management (4) (0) | 2022.05.18 |
[iOS App Dev Tutorials] SwiftUI - State Management (3) (0) | 2022.05.18 |