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

对不起,我是一个新手iOS开发人员,最近我简单地听说@synthesize现在在一个特定版本的Xcode @synthesize和编译器将自动合成和属性和分配_私有variables。

我testing过这个:

用@synthesize,你可以访问属性和私有字段

self.property_name = something; _property_name = something; //(used in getter and setters) 

用@synthesize property_name,你可以使用属性和私有字段

 self.property_name = something; property_name = something; 

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

不,我们不需要像Xcode 4.4那样做,它添加了一个名为Default Synthesis Of Properties的特性。

简而言之,它会自动生成这个:

 @synthesize name = _name; 

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

在.h:

 @property int32_t FwdID; 

在.m中:

 @synthesize FwdID; 

课内用法:

 FwdID = 0; 

从我可以告诉,如果你想默认为你工作,你必须键入_FwdID = 0; 在代码中,这只是看起来丑陋的我。

所以,如果你像我一样(打破了所有我认为的标准编码习惯),你仍然需要使用合成。