2014-08-28 100 views
0

我想聲明objective-c中的變量,這些變量在類的實例化實例中可用,但在該類的範圍之外不可用。我一直在做我的代碼如下:最佳實踐類級別變量

@interface myClass 
{ 
NSString* classVariable; 
} 
@end 

@implementation myClass 

-(void)method 
{ 
NSLog(@"%@",classVariable); 
} 

@end 

這個看似工作的代碼,但我是新來的Objective-C(從Java和C#的未來)。這是最佳做法嗎?有沒有什麼陷阱?

在此先感謝!

+0

只需使用屬性,而你很好! – CrimsonChris 2014-08-28 17:23:38

+0

@CrimsonChris謝謝。我目前使用的方法有什麼缺陷嗎?我知道屬性在課堂外是可見的,我希望避免。 – steventnorris 2014-08-28 18:18:25

+0

如果將它們放在頭文件中,它們只能在類的外部顯示。將它們放在_class類別_正上方的類實現中。 – CrimsonChris 2014-08-28 18:24:10

回答

1

許多人會告訴你使用性能,但有時你只是想一個實例變量是私有的(這只是意味着更難在Objective-C,其並沒有真正的門禁出入)。如果這是您的情況,那麼Objective-C語言就可以在不久以前在實現中聲明實例變量,以滿足您的需求。將代碼更改爲:

@interface myClass 
@end 

@implementation myClass 
{ 
    NSString* classVariable; 
} 

-(void)method 
{ 
    NSLog(@"%@",classVariable); 
} 

@end 

以這種方式聲明的實例變量與Objective-C允許的一樣隱藏。