A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Silent_memory 中级黑马   /  2014-3-12 12:07  /  1783 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Silent_memory 于 2014-3-25 22:59 编辑

@property @synthesize 请问这两个在程序的上下文中要同时存在吗,还是我单独使用@synthesize 就能自动分配取值设值的方法啊。不需要@property 预先定义变量。

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

4 个回复

倒序浏览
在Objective-c中,使用@property来标识属性(一般是实例变量)。在实现文件中使用@synthesize标识所声明的变量,让系统自动生成设置方法和获取方法。         也就是说@property和@synthesize配对使用,让系统自动生成设置方法和获取方法。

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
@property可以自动生成某个成员变量的setter方法和getter方法的声明。
@synthesize可以自动生成某个成员变量的setter方法和getter方法的实现,如果这个成员变量不存在会自动生成这个变量并访问。
这两个是配对用的,不过xcode4.4以后可以使用@property 声明并实现setter方法和getter方法,而且会自动生成成员变量。

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


评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
@property可以自动生成某个成员变量的setter方法和getter方法的声明。
@synthesize可以自动生成某个成员变量的setter方法和getter方法的实现
xcode4.2以上的版本 可以不写@synthesize,@property 声明并实现setter方法和getter方法,而且会自动生成成员变量。

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
昨天特意巩固了@property 和 @synthesize

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

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马