2013-04-11 63 views
0

我已經聲明瞭一個常量頭文件:「Constants.h」。它包含以下聲明:iOS:與「Constants.h」錯誤

extern const NSString *Const_alertPayantMessage = @"test"; 
extern const NSString *Const_alertPayantTitle = @"Wooooops!!!"; 
extern const int  *Const_statutPayant  = 1; 

而且我用這個常量這樣:

clang: error: linker command failed with exit code 1 (use -v to see invocation) 

int x = 1; 

    if (x == Const_statutPayant) { 
     UIAlertView* mes=[[UIAlertView alloc] initWithTitle:Const_alertPayantTitle 
                message:Const_alertPayantMessage delegate:self cancelButtonTitle:@"Ok" otherButtonTitles: nil]; 

     [mes show]; 
     [avPlayerError play]; 
    }else{ 
     [avPlayer play]; 

不幸的是,因爲我有這樣的錯誤消息,我無法運行我的應用程序

你有什麼想法嗎?

+1

馬克的答案是正確的。但是,從編碼標準的角度來看,我建議你避免在變量名稱開頭使用大寫字母,通常建議使用小寫字母開始變量,以便它們可以快速方便地與類別區分開來 – Tim 2013-04-11 11:41:15

+0

In事實上,我不知道Xcode中的編程標準。每種語言都有其獨特之處。請您提供更多信息。 – 2013-04-11 19:06:37

回答

3

「Constants.h」 應包含以下內容:

extern const NSString *Const_alertPayantMessage; 
extern const NSString *Const_alertPayantTitle; 
extern const int  Const_statutPayant; 

「Constants.m」 應包含以下內容:

const NSString *Const_alertPayantMessage = @"test"; 
const NSString *Const_alertPayantTitle = @"Wooooops!!!"; 
const int  Const_statutPayant  = 1; 
+0

噢,真好!非常感謝Mark! – 2013-04-11 11:42:35

0

Constant.h應該像

NSString * const kAlertPayantMessage; 
NSString * const kAlertPayantTitle; 

而你的Constant.m應該是

NSString * const kAlertPayantMessage = @"test"; 
NSString * const kAlertPayantTitle = @"Wooooops!!!"; 

Why you have to use NSString* const instead of const NSString * ?

+0

我將改變: NSString * const kAlertPayantMessage = @「test」; Thx你。 – 2013-04-11 19:09:15

+0

Thx再次Anil,爲額外的信息 – 2013-04-12 00:17:44