>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
```