2013-02-13 21 views
1

我要聲明的Objective-C類靜態類變量和想使用它們直接使用類名像如何在Objective-c中使用類變量,如「MyClassName.var」?

有一個名爲「Myclassname」和變量「VAR」

類並希望像這樣訪問這個變量....

Myclassname.Var = @「hi」;

我不想使用getters和setters。

請幫忙嗎?

+3

不可能的。 [看看這個問題](http://stackoverflow.com/questions/695980/how-do-i-declare-class-level-properties-in-objective-c)。 – bbarnhart 2013-02-13 14:17:15

+0

對於從外部訪問靜態ivars,您應該使用訪問器。請記住,訪問者以一個前綴+而不是 - 因爲它們是類方法而不是實例方法。如果你的var是'int _abc;'而你的getter是'+(int)abc;'然後你的Class是'A',那麼你用'[abc]訪問getter';我不確定'A.abc'是否也可以工作。不要這樣想。 – 2013-02-13 14:21:44

回答

1

不使用.語法訪問變量 - 這些是獲取者和設置者。 @bbarnhart指出,唯一的選擇是手動聲明類getter和setter。

@interface Myclassname 

+(NSString *)var; 
+(void)setVar:(NSString *)newVar; 

@end 

和實施這些方法來訪問/設置在背襯static變量。

無論如何,這並不是一個好主意,並且不會與Objective-C風格混雜在一起。您應該考慮使用singleton和屬性。

0

我不明白爲什麼你不能使用 - >語法是這樣的:

Myclassname->var = @"Hi";