2012-10-01 119 views
0

可能重複:
Interface type cannot be statically allocated?錯誤定義的NSString全局常量

這裏是我的代碼只是像其他人一樣:

TZNotifications.h
extern NSString *const TZNotificationKeywordAuthentication;

TZNotifications.m
NSString *const TZNotificationKeywordAuthentication = @"NOTIFICATION_KEYWORD_AUTHENTICATION";

,但我得到兩個錯誤,像這樣的代碼:

enter image description here

+0

哼,對我來說,在創建帶有這些內容的文件並在我的程序中使用它們時,完全適合我。你能顯示周圍的代碼嗎?看起來像一些其他語法錯誤會導致編譯器窒息。 –

+0

我只是想知道,爲什麼你不能在這種情況下使用'#define TZNotificationKeywordAuthentication @「NOTIFICATION_KEYWORD_AUTHENTICATION」'作爲常量字符串的主要原因......? – holex

+0

@holex在Cocoa中內置NSString的內容似乎是這樣定義的,可能因爲它允許你使用'=='比較它們(它們都是同一個對象),你不需要知道常量是一個NSString或枚舉/ int。 –

回答

0

替換 '常量' 和類型聲明:

TZNotifications.h

extern const NSString *TZNotificationKeywordAuthentication; 

TZNotifications.m

const NSString *TZNotificationKeywordAuthentication = @"NOTIFICATION_KEYWORD_AUTHENTICATION"; 
0

謝謝你們。事實證明,我愚蠢地在我的一個頭文件的末尾添加了一個無意義的字符串,導致這個奇怪的錯誤。對不起...