在xcode中系统内置的跨平台宏定义在头文件中
#ifdef #ifdef __APPLE__
#include <TargetConditionals.h>
#endif
此头文件中各个平台的宏定义有(以Mac为例):
#define TARGET_OS_MAC 1
#define TARGET_OS_WIN32 0
#define TARGET_OS_UNIX 0
#define TARGET_OS_OSX 1
#define TARGET_OS_IPHONE 0
#define TARGET_OS_IOS 0
#define TARGET_OS_WATCH 0
#define TARGET_OS_BRIDGE 0
#define TARGET_OS_TV 0
#define TARGET_OS_SIMULATOR 0
#define TARGET_OS_EMBEDDED 0
所以识别IOS和MACOS可以这样写:
#if TARGET_OS_IPHONE
//do something
#endif
#if TARGET_OS_MAC
//do something
#endif