在xcode中系統(tǒng)內(nèi)置的跨平臺(tái)宏定義在頭文件中
#ifdef #ifdef __APPLE__
#include <TargetConditionals.h>
#endif
此頭文件中各個(gè)平臺(tái)的宏定義有(以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
所以識(shí)別IOS和MACOS可以這樣寫:
#if TARGET_OS_IPHONE
//do something
#endif
#if TARGET_OS_MAC
//do something
#endif