2012-03-28 21 views
0

一個奇怪的objective-c新手問題。我注意到我可以在.h文件中定義一個NSString,但不在.m文件中......爲什麼?爲什麼只能在頭文件中定義一個NSString常量?

宣言的問題是:

#define kSomeString @"This is a string" 

該宣言失敗,一個錯誤,如果它在.m文件。

+8

什麼是錯誤? – 2012-03-28 18:20:41

+5

+1 @JamesMcLaughlin。無論是在頭文件還是實現文件中,它都應該完全一樣。編譯器當然不在乎。 – 2012-03-28 18:21:24

+0

@CarlNorum我可以確認你的結果,沒有錯誤。 Matthew Carriere,你的代碼肯定有問題。 – LuisEspinoza 2012-03-28 18:26:35

回答

3

你也可以在實現文件中定義它們。

#import "SAiPadHomeViewController.h" 

#define hugo @"Test" 

@interface SAiPadHomeViewController() 
@end 

@implementation SAiPadHomeViewController 
@end 

這個例子的工作原理 - 嘗試它。

Greetz!

相關問題