在我的應用我正在執行以下使用未聲明的標識符的步驟中創建.h文件中說爲宏
1),GlobalMacros.h
在GlobalMacros.h
#define IP_ADDR @「SERVER_IP」
2)在我的應用.pch文件
import 「GlobalMacros.h」
然後在其他類的其他類中,我在iOS 01中使用此IP_ADDR宏個5.0沒有問題,但在IOS> 5.0我得到一個錯誤使用未聲明的標識符的IP_ADDR
在我的應用我正在執行以下使用未聲明的標識符的步驟中創建.h文件中說爲宏
1),GlobalMacros.h
在GlobalMacros.h
#define IP_ADDR @「SERVER_IP」
2)在我的應用.pch文件
import 「GlobalMacros.h」
然後在其他類的其他類中,我在iOS 01中使用此IP_ADDR宏個5.0沒有問題,但在IOS> 5.0我得到一個錯誤使用未聲明的標識符的IP_ADDR
原因是這些中的一個:
的.pch file
有一些#if
測試條件包括#import "GlobalMacros.h"
如果構建版本低於iOS5的
的GlobalMacros.h
文件有它的條件#if
一些報頭或源文件中有一個#if
聲明,在小於的iOS5項目取消定義IP_ADDR
,所述.pch
文件使用不同的GlobalMacros.h
文件,而不是具有IP_ADDR
限定在所述一個它
編輯:我要補充一點,在Xcode4.5
,我包括在我.pch
文件這一全球性的宏文件。出於某種原因,預處理器會感到困惑,並且源代碼編輯器在許多文件中顯示未知的宏,這似乎是隨機的。我在做什麼是因爲我收到錯誤,將全局宏文件添加到受影響的文件。
我在'.m'文件中定義了我的宏。這解決了我的問題 –
@亞歷山大如果你需要在其他文件中使用該MACRO,把它放在每個文件中是一個可怕的解決方案。在這種情況下,您應該將其放在.pch文件中,或者包含需要宏的global.h文件中。 –
爲什麼不命名空間你的東西。 GlobalMacros是頭文件名的可怕解決方案。 – uchuugaka
在.pch文件中寫下這行#define IP_ADDR @「SERVER_IP」。那麼它會正常工作 –
你是否在你的源代碼中使用''''和'''引號,或者你是否在一個編輯器中輸入你的問題,而這個編輯器能夠將正常引號自動轉換爲相反的引號? – dasblinkenlight
命名空間你的東西。 GlobalMacros.h是一個可怕的名字。可能已經在其他地方使用過。 IP_ADDR也很愚蠢。認真。你應該對字符串常量使用完全不同的技術。像實際的字符串常量。 WTF – uchuugaka