這兩種都可以用來定義常量,用法是:
- 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