iOS编程细节

2019-07-26  本文已影响0人  单线程Jack

1、判断文件是否存在,再导入使用,避免文件不存在的情况;

#if __has_include(<unistd.h>)
# include <unistd.h>
#elif __has_include(<io.h>)
# include <io.h>
#else
# error "Insane system"
#endif
#if __has_include(<YYModel/YYModel.h>)
FOUNDATION_EXPORT double YYModelVersionNumber;
FOUNDATION_EXPORT const unsigned char YYModelVersionString[];
#import <YYModel/NSObject+YYModel.h>
#import <YYModel/YYClassInfo.h>
#else
#import "NSObject+YYModel.h"
#import "YYClassInfo.h"
#endif

2、FOUNDATION_EXPORT与#define 哪个来定义常量更好?

首先看看 苹果的定义

NSObjCRuntime.h中的写法:

#if defined(__cplusplus)
#define FOUNDATION_EXTERN extern "C"
#else
#define FOUNDATION_EXTERN extern
#endif
 
#if TARGET_OS_WIN32
 
    #if defined(NSBUILDINGFOUNDATION)
        #define FOUNDATION_EXPORT FOUNDATION_EXTERN __declspec(dllexport)
    #else
        #define FOUNDATION_EXPORT FOUNDATION_EXTERN __declspec(dllimport)
    #endif
 
    #define FOUNDATION_IMPORT FOUNDATION_EXTERN __declspec(dllimport)
 
#else
    #define FOUNDATION_EXPORT  FOUNDATION_EXTERN
    #define FOUNDATION_IMPORT FOUNDATION_EXTERN
#endif
上一篇下一篇

猜你喜欢

热点阅读