FOUNDATION_EXPORT 和#define

這兩種都可以用來定義常量,用法是:

  • FOUNDATION_EXPORT

.h

FOUNDATION_EXPORT NSString * const AFNetworkingTaskDidResumeNotification;

.m

NSString * const AFNetworkingTaskDidResumeNotification = @"com.alamofire.networking.task.resume";
  • "#define"
#define AFNetworkingTaskDidResumeNotification = @"com.alamofire.networking.task.resume"

那么它倆的區別是什么呢?
在做字符串比較的時候,FOUNDATION_EXPORT可以使用 Str1 == Str2的方式對比,這種比較是直接比較指針地址,效率更高。
define 則是 [Str1 isEqualToString:Str2],這種方式是比較字符串的每一個字符是否相等。

由于過多的宏定義會產生過多的二進制文件,故如果宏定義比較多,建議用FOUNDATION_EXPORT
如果想隱藏定義的細節,可以使用FOUNDATION_EXPORT

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容