網絡上搜索FOUNDATION_EXPORT出來的基本都是同一篇,但是看的不是很明白就自己做了個實驗。地址:http://blog.csdn.net/lingyu_ios/article/details/43836025
網絡上現有的結論:
FOUNDATION_EXPORT 與 #define 都可以用來定義常量
FOUNDATION_EXPORT定義的字符串直接比較的是指針地址
#define定義的字符串則是一一比較字符串的每一個字符是否相等
.h
.m
可以發現字符串一樣的情況對象地址是一致的
那aStr3和aStr4為什么不能直接比對指針?
如果直接比對指針地址,編譯器就會出現警告
direct comparison of a string literal has undefined behavior
警告的大概意思是:這是因為NSString使用= =文字比較不保證像你所期望的。使用isEqual:或isequaltostring:相反,你可以擺脫這種預警和避免這一錯誤。
至于更本質的原因就需要大家進一步研究了。有知道答案的歡迎留言指教