Article

Marking API Availability in Objective-C API利用可能性をObjective-Cにおいて印する

Use a macro to denote the availability of an Objective-C API. aマクロを使って、Objective-C APIの利用可能性を示してください。

Overview 概要

In Swift, you use the @available attribute to control whether a declaration is available to use when building an app for a particular target platform. Similarly, you use the availability condition #available to execute code conditionally based on required platform and version conditions. Both kinds of availability specifier are also available in Objective-C. Swiftでは、あなたは@available属性を使うことで、あるアプリを特定の対象プラットホーム用にビルドする時に、ある宣言が利用に応じられるかを制御します。同様に、あなたは利用可能性条件#availableを使うことで、必要なプラットホームおよびバージョン条件に基づいて、条件付きでコードを実行します。両方の種類の利用可能性指定子はまた、Objective-Cにおいても役立てられます。

For detailed information about specifying platform availability, see Declaration Attributes in The Swift Programming Language. プラットホーム利用可能性の指定についての詳細な情報として、宣言属性The Swift Programming Languageで見てください。

Mark Availability 利用可能性を印する

Use the API_AVAILABLE macro to add availability information in Objective-C: API_AVAILABLEマクロを使って、利用可能性情報をObjective-Cにおいて加えてください:


@interface MyViewController : UIViewController
- (void) newMethod API_AVAILABLE(ios(11), macosx(10.13));
@end

This is equivalent to using the @available attribute on a declaration in Swift: これは、@availableをSwiftにおける宣言上で使うことに相当します:


@available(iOS 11, macOS 10.13, *)
func newMethod() {
    // Use iOS 11 APIs.
}

Check Availability 利用可能性を調べる

Use the @available() keyword to check availability information in a conditional statement in Objective-C: @available()キーワードを使って、利用可能性情報をObjective-Cの条件文で確認してください:


if (@available(iOS 11, *)) {
    // Use iOS 11 APIs.
} else {
    // Alternative code for earlier versions of iOS.
}

This is equivalent to the following conditional in Swift: これは、Swiftでの以下の条件文に相当します:


if #available(iOS 11, *) {
    // Use iOS 11 APIs.
} else {
    // Alternative code for earlier versions of iOS.
}

See Also 参照

Customizing Objective-C APIs Objective-C APIをカスタマイズする