2014-08-28 79 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允许的一样隐藏。