黑马程序员技术交流社区

标题: 关于OC中@synthesize与@property的问题 [打印本页]

作者: Silent_memory    时间: 2014-3-12 12:07
标题: 关于OC中@synthesize与@property的问题
本帖最后由 Silent_memory 于 2014-3-25 22:59 编辑

@property @synthesize 请问这两个在程序的上下文中要同时存在吗,还是我单独使用@synthesize 就能自动分配取值设值的方法啊。不需要@property 预先定义变量。
作者: Monkey·D·Chas    时间: 2014-3-12 12:20
在Objective-c中,使用@property来标识属性(一般是实例变量)。在实现文件中使用@synthesize标识所声明的变量,让系统自动生成设置方法和获取方法。         也就是说@property和@synthesize配对使用,让系统自动生成设置方法和获取方法。
作者: z82454642    时间: 2014-3-12 15:14
@property可以自动生成某个成员变量的setter方法和getter方法的声明。
@synthesize可以自动生成某个成员变量的setter方法和getter方法的实现,如果这个成员变量不存在会自动生成这个变量并访问。
这两个是配对用的,不过xcode4.4以后可以使用@property 声明并实现setter方法和getter方法,而且会自动生成成员变量。

这个教程里面都有的...



作者: 牧之    时间: 2014-3-12 15:45
@property可以自动生成某个成员变量的setter方法和getter方法的声明。
@synthesize可以自动生成某个成员变量的setter方法和getter方法的实现
xcode4.2以上的版本 可以不写@synthesize,@property 声明并实现setter方法和getter方法,而且会自动生成成员变量。
作者: meegor    时间: 2014-3-12 15:55
昨天特意巩固了@property 和 @synthesize

总结一下:
1. 如果你使用的XCode版本高于4.4,只使用 @property语句就可以自动生成指定成员变量的 setter 和 getter 的申明实现
2. 如果使用Xcode版本低于4.4,使用 @property语句只能生成指定成员变量的 setter 和 getter 的申明,必须加上@synthesize 语句才能自动生成相应成员变量  setter 和 getter 的实现






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2