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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈志辉 中级黑马   /  2014-3-21 14:39  /  1352 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陈志辉 于 2014-3-24 14:46 编辑

请问一下什么时候使用"@property "?

4 个回复

倒序浏览
按照老师视频中讲的 我的理解就是 取代了成员变量 和 setter getter 方法了 确实好用啊 昨天也刚刚学到这
回复 使用道具 举报
在对象声明变量的时候使用
@property int age;
此时的@property会做3件事:
1、生成private int _age
2、生成age的setter和getter的声明
3、生成age的setter和getter的实现
回复 使用道具 举报
@property与@synthesize配对使用
主要 功能是让编译器自动编写一个与数据成员同名的方法声明来省去读写方法的声明;
例如:在头文件中(.h)
@property int count;
等效于在头文件中声明2个方法:
-(int)count;
-(void)setCount:(int)newCount;
在实现文件中(.m)
@synthesize count;
等效于在实现文件中(.m)中实现2个方法
-(int)count
{}
-(void)setCount:(int)newCount
{}
利用此关键字只是简化了编码人员的输入。

另外在xcode 4.4以后,只需要在.h文件中声明
@property int count;
就可以了,不需要在.m文件中声明
@synthesize count; 了
回复 使用道具 举报
简单点儿说,就是@property 决定getter setter的名称,@synthesize决定 getter setter 访问的成员
@property int age;  getter 是 -age, setter 是 -setAge: 访问的是 _age成员变量,如果_age没有自定义,则自动声明为 @private 属性
@property int age; @synthesize age 或者 @synthesize age = age; 访问的是 age成员变量,如果 age没有自定义,则自动声明为 @private 属性
@property int age; @synthesize age = _age; 访问的是 _age成员变量,如果_age没有自定义,则自动声明为 @private 属性
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马