在ios应用程序中使用@synthesize

bar*_*dog 2 objective-c ios

我在iOSU开发的iTunesU课程中观看精彩的Paul Haggerty(因为谁不需要刷新基础知识?)他说了一些我不知道的事情:

"我们永远不会访问下划线(_符号)变量"

然后他继续讨论了如何使用@property声明变量,@synthesize variable = _variable是由编译器在幕后生成的代码,以及setter和getter.基本上,代码永远不会出现在您的应用程序中.

在我迄今为止编写的所有iOS应用程序中,我总是@property在我的头文件中声明我的变量.@synthesize VARIABLE_NAME = _VARIABLE_NAME;自从观看讲座以来,我现在很困惑我是否应该@synthesize在我的代码中使用它.

我应该只使用财产声明吗?如果我在代码中使用合成声明,它有什么区别(如果有的话)?

既然Haggerty先生不使用它,那我为什么呢?(考虑到他是一个iOS半神).我非常觉得做我一直在做的事情是不好的形式.

有人关心澄清这个问题吗?

Ind*_*ore 7

Xcode 4.0 Developer Preview 4发行说明.添加默认的属性自动合成(iOS和64位OS X).您不需要@synthesize实现部分中的指令,编译器就可以为声明的属性合成访问器.

所以

@synthesize ivar = _ivar;
Run Code Online (Sandbox Code Playgroud)

如果你省略它是完全相同的.