버전별 적용 방법
if #available(iOS 9.0, *) {
if (traitCollection.forceTouchCapability == UIForceTouchCapability.Available) {
//configure force touch
} else {
// Fallback on earlier versions
}
Guard
가용성 확인 기능#available
을 사용할 때guard
와 함께 적용하는 것이 더 좋을 것입니다.
아래의 코드는 iOS 9 이상의 버전에서 구동되지 않을 경우 이 함수에서는 아무 일도 하지 않고 그대로 리턴되도록 합니다.
func configureForceTouch() {
guard #available(iOS 9.0, *) else {
return
}
if (traitCollection.forceTouchCapability == UIForceTouchCapability.Available) {
//configure force touch
}
}
클래스와 메서드
클래스와 메서드의 가용성을 확인할 때에는#available
대신에@available
을 사용합니다.
@available(iOS 9.0, *)
func configureForceTouch() {
if (traitCollection.forceTouchCapability == UIForceTouchCapability.Available) {
//configure force touch
}
}
그 외의 플랫폼에서
아래의 예제는 iOS 이외의 다른 플랫폼에서의 가용성을 확인하는 코드입니다.
if #available(iOS 9.0, OS X 10.10, *) {
// runs on iOS 9 and OS X 10.10
}
if #available(OSX 10.0, iOS 9, watchOS 2, tvOS 1, *) {
// runs on OS X 10.0, iOS 9, watchOS 2 and tvOS 1
}