iOS - Availability.h

时间:2022-10-01 00:17:51

>for 'dispatch' application inner to begin note

`#include <Availability.h>`

These macros are for use in OS header files. They enable funcation prototypes and Objective-C methods to be tagged with the OS version in which they were first available; and, if applicable, the OS version in which they beacom deprecated.

Examples (_NA: not applicable):

__OSX_AVAILABLE_STARING(__MAC_10_2,__IPHONE_2_0)

__OSX_AVALIABLE_STARING(__MAC_10_2,__IPHONE_NA)

__OSX_AVALIABLE_BUT_DEPRECATED(__MAC_10_2,__MAC_10_5,__IPHONE_5_0,__IPHONE_8_0)

__OSX_AVALIABLE_BUT_DEPERCATED(__MAC_10_2,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)

For these macros to funcation properly, a program must specify the OS version range it is targeting. the min OS version is specified as an option to the compiler: -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z when building for the iPhone.

Examples:

__OSX_AVAILABLE_STARING(__MAC_10_5,__IPHONE_NA);

#if __IPHONE_OS_VERSION_MIN_REQUIRED // this macros avliable in iPhoneOS Only

enum{

  myX = 1,   // Usable on iPhoneOS 2.1 and later

  myY = 2,   // Usable on iPhoneOS 2.0 and later

  myZ = 3,   // Usable on iPhoneOS 3.0 and later

  ...

}

#endif

These macros

```

/*! MACOS-X version*/

#define __MAC_10_0            1000

#define __MAC_10_1            1010

...

#define __MAC_10_11_4       101104

/*! iPhoneOS version*/

#define __IPHONE_2_0      20000

#define __IPHONE_2_1      20100

...

#define __IPHONE_9_3      90300

/*! TVOS version*/

#define __TVOS_9_0        90000

#define __TVOS_9_1        90100

#define __TVOS_9_2        90200

/*! WATCHOS version*/

#define __WATCHOS_1_0     10000

#define __WATCHOS_2_0     20000

```