Objective-C是@synthesize必需还是可选的?

时间:2013-03-25 01:06:50

标签: ios objective-c

抱歉,我是新手iOS开发人员,最近我简要地听说@synthesize现在是某个版本的Xcode中的@synthesize,并且编译器会自动合成和属性并将_分配给私有变量。

我测试了这个:

没有@synthesize,您可以使用

访问属性和私有字段
self.property_name = something;
_property_name = something; //(used in getter and setters)

使用@synthesize property_name,您可以使用

访问属性和私有字段
self.property_name = something;
property_name = something;

我的问题是我们真的需要@synthesize吗?还是有一个我错过的更大的故事?

2 个答案:

答案 0 :(得分:54)

不,我们不需要这样做,因为Xcode 4.4增加了一个名为Default Synthesis Of Properties的功能。

简单地说,它会自动生成:

@synthesize name = _name;

答案 1 :(得分:-3)

除非你像我一样使用它,否则你仍然需要它,据我所知:

在.h:

@property int32_t FwdID;

in .m:

@synthesize FwdID;

在课堂内使用:

FwdID = 0;

据我所知,如果您希望默认值适合您,您必须输入_FwdID = 0;在代码中,这看起来很难看。

所以,如果你像我一样(打破我所假设的所有标准编码约定),你仍然需要使用合成。