Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- git status
- Problem Solving
- where Self
- Unreal static Framework
- IOS
- protocol 기본구현
- 깃 명령어
- PS
- github
- 깃허브
- 동적할당
- unreal dynamic framework
- Git
- C++
- 깃허브 사용법
- ios framework
- 깃헙
- 알고리즘
- 깃허브 가이드
- 2차원배열
- 인프런
- new int
- embed&sign
- Swift
- Cpp
- Algorithm
- Unreal iOS Framework
- Unreal iOS
- 리눅스 명령어
- 백준
Archives
- Today
- Total
Get Up & Code, MacKin Talk
iOS @available 속성 설정 본문
일부 Delegate 등 시스템 제공 API를 몇 가지만 둘러보더라도 @available 과 같은 속성이 정의된 메소드들을 많이 접할 수 있습니다.
Xcode를 통해 개발을 하는 경우, @available 속성을 통해 특정 클래스, 메서드, 프로퍼티 또는 기타 코드 구성 요소의 사용 가능한 플랫폼 버전을 명시적으로 표시할 수 있으며, API의 버전 관리를 보다 세밀하게 제어하고, 버전 호환성을 지켜줄 수 있습니다.
함수 위에서 @available을 작성하면, Xcode IDE의 도움을 받아 선택적으로 해당 속성을 지정할 수 있습니다.
@available(<#platform#>, introduced: <#version#>, deprecated: <#version#>, message: <#String#>)
플랫폼, 도입 버전, 폐지 버전, 등 여러 가지를 나타낼 수 있습니다.
// MARK: API 폐지(deprecated) 및 제거(obsoleted)
@available(iOS, deprecated: 10.0, obsoleted: 12.0, message: "Use AnotherClass")
class DeprecatedClass {
// iOS 10.0에서 폐지되고 12.0에서 완전히 제거됨
}
// MARK: API 폐지 알림
@available(iOS, deprecated: 13.0, message: "Use NewClass instead")
class OldClass {
// iOS 13.0부터 폐지 예정, NewClass를 사용하라는 메시지 제공
}
// MARK: 도입 버전 지정
@available(iOS 11, *)
class MyClass {
// iOS 11 이상에서 사용 가능
}
// MARK: 특정 조건에서만 사용 가능하도록 제한
@available(iOS 14, macOS 11, *)
func useNewFeature() {
// iOS 14와 macOS 11 이상에서만 사용 가능
}
// MARK: 플랫폼 별로 다른 버전 지정
@available(iOS 10, macOS 10.12, *)
class CrossPlatformClass {
// iOS 10 이상, macOS 10.12 이상에서 사용 가능
}
해당 문법의 도입은 developer.apple.com, Swift.org, Xcode Documentation을 찾아보시면 더 자세하게 살펴볼 수 있을 듯 합니다.
swift.org 링크 첨부합니다. 보다 자세한 내용은 하단 링크에서 알아보세요.
https://docs.swift.org/swift-book/documentation/the-swift-programming-language/attributes/#available
+ Xcode document에도 Available이 있네요. overview에 적혀 있듯 비슷한 역할을 하는 것 같습니다.
ref)
https://swift.org/documentation/
'IOS' 카테고리의 다른 글
new Framework(*) Unreal Engine에서 iOS Framework 적용하기 (0) | 2024.04.09 |
---|---|
프로토콜과 기본 구현 extension ProtocolA where Self: Type 프로토콜 타입 제약 방법 (0) | 2024.03.15 |
CFBundleURLSchemes 과 LSApplicationQueriesSchemes (0) | 2024.03.05 |
DYLD, Dynamic Link Editor이 무엇일까? (2) | 2023.10.16 |
[iOS] 자주 사용하는 컴파일 조건구문에 대하여 (#if, #endif, canImport 등) + available, unavailable (1) | 2023.10.10 |