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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 葛先生 中级黑马   /  2015-3-23 23:04  /  1899 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

)@property 关键字

@property 关键字可以自动生成某个成员变量的setter和getter方法的声明

@property int age;

编译时遇到这一行,则自动扩展成下面两句:

- (void)setAge:(int)age;

- (int)age;

12 个回复

倒序浏览
XCode 4.4 以上版本就不止了    @property int age;之后会完成三件事:(1)生成一个_age的成员变量    (2)生成_age的setter和getter方法的声明    (3)生成_age的setter和getter方法的实现
回复 使用道具 举报
都是高手啊
回复 使用道具 举报
waterfoxjie 发表于 2015-3-23 23:35
XCode 4.4 以上版本就不止了    @property int age;之后会完成三件事:(1)生成一个_age的成员变量    (2 ...

哦。这点到忘记了                 。
回复 使用道具 举报
waterfoxjie 发表于 2015-3-23 23:35
XCode 4.4 以上版本就不止了    @property int age;之后会完成三件事:(1)生成一个_age的成员变量    (2 ...

恩呢,知道了。多谢指教啊。
回复 使用道具 举报
我有个疑问,@property int age 的确能省不少语句,但是我要是想在age的setter方法中过滤掉一些不合理的数值,比如年龄出现负数,就是用if语句咋办,那是不是就不能就这样了呀?
回复 使用道具 举报
oucding 发表于 2015-3-24 16:56
我有个疑问,@property int age 的确能省不少语句,但是我要是想在age的setter方法中过滤掉一些不合理的数 ...

那你就重写setter方法呀    写完之后getter方法XCode还是会帮你补上去的    而且成员变量也会帮你定义的
回复 使用道具 举报

什么高手啊,这都是总结自己被呢。记不住
回复 使用道具 举报
oucding 发表于 2015-3-24 16:56
我有个疑问,@property int age 的确能省不少语句,但是我要是想在age的setter方法中过滤掉一些不合理的数 ...

你手动实现set方法即可,你手动了他就按你的,他只帮你实现你没完成的。
回复 使用道具 举报
marswawa 发表于 2015-3-24 17:58
你手动实现set方法即可,你手动了他就按你的,他只帮你实现你没完成的。 ...

这样子啊,谢谢点拨
回复 使用道具 举报
oucding 发表于 2015-3-24 16:56
我有个疑问,@property int age 的确能省不少语句,但是我要是想在age的setter方法中过滤掉一些不合理的数 ...

能啊,你在实现里面直接重写 age的setter方法不就行了吗
回复 使用道具 举报
oucding 发表于 2015-3-24 16:56
我有个疑问,@property int age 的确能省不少语句,但是我要是想在age的setter方法中过滤掉一些不合理的数 ...

只写setter方法,不写getter方法,编译器会帮你补全getter方法,当然如果设置对象为只读,我感觉就不要用@property了
回复 使用道具 举报
这个确实不错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马