2011-11-27 140 views
1

我正在阅读一本关于Objective-C的书,专门讨论全局变量。Objective-C和全局变量

作者使用了下面的例子:

对于类Employee

.h文件中声明:

extern NSString const *greeting; 

.m文件中声明

NSString const *greeting = @"Hello"; 

作者但是没有提及需要

@property (strong, readonly) NSString const *greeting; 

@synthesize greeting;

我失去了一些东西,有一种方法,以避免它,或者是对作者的部分错字?

回答

2

@property是例如变量;全局变量不是特定于某个类的实例。即便如此,即使对于实例变量,也不需要使用@property。

+0

这就是我认为的,但是,由于某种原因,变量在班级以外是不可见的。在我'Eployee * e = [新员工]之后''[e greeting]'不可见 –

+0

@詹姆斯:不要致电'[问候]'。 Employee类不包含该属性。要访问'greeting'全局变量,只需要像'NSLog(@“%@”,greeting)那样请求它;' – tidwall

+0

谢谢你们!确实很好的解释 –

0

全局变量不需要在一个类中完成。因此,你不需要财产。

+0

如何从Employee类外部使用此全局变量? –

+0

包含头文件。 –