我开始与obj-c,并有几件事我没有得到。声明或不声明在目标c
首先是我(哦,我来自AS3编码的角度)认为,如果你想在你的类中有一个变量,你需要首先在头文件中用@property运算符声明它,然后.m文件中的@synthesize,还必须在头文件中声明该方法,但是我遇到了只在.m文件的方法中定义变量而没有任何声明的情况,而且同样的方法,直接写入.m文件中的方法没有声明,它们工作正常。
那么@ property/@合成变量和声明头文件中的方法有什么意义?这与范围有关吗?
我开始与obj-c,并有几件事我没有得到。声明或不声明在目标c
首先是我(哦,我来自AS3编码的角度)认为,如果你想在你的类中有一个变量,你需要首先在头文件中用@property运算符声明它,然后.m文件中的@synthesize,还必须在头文件中声明该方法,但是我遇到了只在.m文件的方法中定义变量而没有任何声明的情况,而且同样的方法,直接写入.m文件中的方法没有声明,它们工作正常。
那么@ property/@合成变量和声明头文件中的方法有什么意义?这与范围有关吗?
你所谈论的是不是提到了声明的变量但通过一个getter和一个setter从类之外揭露它。
的@财产/ @合成只是一个快捷方式自动创建两个方法,这是
- (void) [class setVariable:(type)var]
- (type) [class variable]
,可以设置和获取来自其他类的变量。
并非每个变量都需要从课外设置或获取。
头文件(.h)文件应该包含你想要的其他类要知道这个类的其他类。类扩展 - .m文件中的接口部分 - 是私有声明的好地方。 (如果一个方法是使用之前定义的,即作为声明它不是最佳的,但它的工作原理。)
有Objective-C中的变量三大类:
在声明和合成prope rty,实例变量是为您创建的。另一方面,局部变量在代码块的范围内声明,不能通过属性声明。
所有的实例变量不需要做成属性。 – 2012-08-05 13:26:06