iPhone Dev - @synthesize关键字?

时间:2009-12-08 11:06:25

标签: iphone

我正在学习iPhone开发。在书中的示例中,提到了属性的@synthesize关键字。

对于控件,我在.h文件中定义属性,但在.m文件中不定义@synthesize。我正在使用.text属性访问文本框的属性。 此外,我还链接了文本框的出口,文本框的名称与属性名称不同。

代码运行良好;所以@synthesize关键字不需要吗?什么时候?

2 个答案:

答案 0 :(得分:4)

来自Apple的文档> Mac开发中心> Cocoa Core Competencies>声明的财产:

  

除了声明访问者   方法,您可以指示编译器   合成它们的实现   (或通知编译器你的   上课将合成它们   运行时)。

     

您在a中使用@synthesize语句   类的实现块告诉   编译器来创建实现   符合您给出的规格   在财产声明中。

供参考:

  

您可以使用@dynamic语句来说明   编译器如果禁止警告   它无法找到实现   由a指定的访问器方法   @property声明。

答案 1 :(得分:3)

@synthesize指令控制访问器方法的创建。但是,你并没有严格地说必须使用访问器方法,它们只是非常好的想法,让编译器自动生成它们是值得的。

访问器方法可以对变量进行微调,并使键值编码更容易。

在Objective-c 2.0之前,您必须手动编写访问器。这意味着为每个变量编写两个方法。这很乏味,很多人用脚本来做。当他们更新语言时,他们只包括那些脚本。 @ property,@synthesize和@dynamic编译器指令激活这些脚本。