1

Marking API Availability in Objective-C

 1 year ago
source link: https://developer.apple.com/documentation/swift/marking-api-availability-in-objective-c
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Article

Marking API Availability in Objective-C

Use a macro to denote the availability of an 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.

For detailed information about specifying platform availability, see Declaration Attributes in The Swift Programming Language.

Mark Availability

Use the API_AVAILABLE macro to add availability information in 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(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:


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:


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

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK