#include <objc/objc-api.h>
objc/objc-api.h
macroOBJC_API_VERSION
OBJC_API_VERSION 0 or undef: Tiger and earlier API only
OBJC_API_VERSION 2: Leopard and later API available
#define OBJC_API_VERSION 2
macroNS_ENFORCE_NSOBJECT_DESIGNATED_INITIALIZER
NS_ENFORCE_NSOBJECT_DESIGNATED_INITIALIZER == 1
marks -[NSObject init] as a designated initializer.
#define NS_ENFORCE_NSOBJECT_DESIGNATED_INITIALIZER 1
macroOBJC_OLD_DISPATCH_PROTOTYPES
The arm64 ABI requires proper casting to ensure arguments are passed
* correctly.
#define OBJC_OLD_DISPATCH_PROTOTYPES 0
macroOBJC_AVAILABLE
#define OBJC_AVAILABLE(x, i, t, w, b) __OSX_AVAILABLE(x) __IOS_AVAILABLE(i) __TVOS_AVAILABLE(t)
__WATCHOS_AVAILABLE(w)macroOBJC_OSX_DEPRECATED_OTHERS_UNAVAILABLE
#define OBJC_OSX_DEPRECATED_OTHERS_UNAVAILABLE(_start, _dep, _msg) __OSX_DEPRECATED(_start, _dep, _msg)
__IOS_UNAVAILABLE __TVOS_UNAVAILABLE
__WATCHOS_UNAVAILABLEmacroOBJC_OSX_AVAILABLE_OTHERS_UNAVAILABLE
#define OBJC_OSX_AVAILABLE_OTHERS_UNAVAILABLE(vers) __OSX_AVAILABLE(vers)
__IOS_UNAVAILABLE __TVOS_UNAVAILABLE
__WATCHOS_UNAVAILABLEmacroOBJC_ISA_AVAILABILITY
OBJC_ISA_AVAILABILITY: `isa` will be deprecated or unavailable
in the future
#define OBJC_ISA_AVAILABILITY __attribute__((deprecated))
macroOBJC_UNAVAILABLE
OBJC_UNAVAILABLE: unavailable, with a message where supported
#define OBJC_UNAVAILABLE(_msg) __attribute__((unavailable(_msg)))
macroOBJC_DEPRECATED
OBJC_DEPRECATED: deprecated, with a message where supported
#define OBJC_DEPRECATED(_msg) __attribute__((deprecated(_msg)))
macroOBJC_ARC_UNAVAILABLE
OBJC_ARC_UNAVAILABLE: unavailable with -fobjc-arc
#define OBJC_ARC_UNAVAILABLE
macroOBJC_SWIFT_UNAVAILABLE
OBJC_SWIFT_UNAVAILABLE: unavailable in Swift
#define OBJC_SWIFT_UNAVAILABLE(_msg) __attribute__((availability(swift, unavailable, message=_msg)))
macroOBJC_ARM64_UNAVAILABLE
OBJC_ARM64_UNAVAILABLE: unavailable on arm64 (i.e. stret dispatch)
#define OBJC_ARM64_UNAVAILABLE OBJC_UNAVAILABLE("not available in arm64")
macroOBJC_GC_UNAVAILABLE
OBJC_GC_UNAVAILABLE: unavailable with -fobjc-gc or -fobjc-gc-only
#define OBJC_GC_UNAVAILABLE
macroOBJC_EXTERN
#define OBJC_EXTERN extern
macroOBJC_VISIBLE
#define OBJC_VISIBLE __attribute__((visibility("default")))macroOBJC_EXPORT
#define OBJC_EXPORT OBJC_EXTERN OBJC_VISIBLE
macroOBJC_IMPORT
#define OBJC_IMPORT extern
macroOBJC_ROOT_CLASS
#define OBJC_ROOT_CLASS __attribute__((objc_root_class))
macroOBJC_INLINE
#define OBJC_INLINE __inline
macroOBJC_ENUM
Declares an enum type or option bits type as appropriate for each language.
#define OBJC_ENUM(_type, _name) _type _name; enum
macroOBJC_OPTIONS
#define OBJC_OPTIONS(_type, _name) _type _name; enum
macroOBJC_RETURNS_RETAINED
#define OBJC_RETURNS_RETAINED
macroOBJC_NOESCAPE
OBJC_NOESCAPE: marks a block as nonescaping
#define OBJC_NOESCAPE __attribute__((noescape))
macroOBJC_REFINED_FOR_SWIFT
OBJC_REFINED_FOR_SWIFT: hide the definition from Swift as we have a
better one in the overlay
#define OBJC_REFINED_FOR_SWIFT __attribute__((swift_private))
macroOBJC_NOT_TAIL_CALLED
#define OBJC_NOT_TAIL_CALLED __attribute__((not_tail_called))