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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. 2.@property
  2. #import <Foundation/Foundation.h>
  3. @interface Person : NSObject
  4. @property int age;
  5. @property int no;
  6. - (void)test;
  7. @end

  8. @implementation Person
  9. - (void)test
  10. {
  11.     NSLog(@"年龄是%d, 号码是%d", _age, _no);
  12. }

  13. - (void)setAge:(int)age
  14. {
  15.     _age = age;
  16. }

  17. - (void)setNo:(int)no
  18. {
  19.     _no = no;
  20. }

  21. - (int)no
  22. {
  23.     return _no;
  24. }
  25. @end
复制代码

关于@property的一道课后练习题,求解!谢谢!
答案相信大家都知道了,我想问的是Xcode中@property不是会自动补全声明,实现和成员变量吗?为什么@interface这里要加上
  1. {
  2.    int _no;
  3. }
复制代码

5 个回复

正序浏览
自动生成的是@private
只能在本类访问
写上那句话,是@protect
意为这本类和子类都可以访问
回复 使用道具 举报
从今以后 发表于 2014-11-26 18:17
在自动生成的默认是私有的,自己写一个默认就是保护的,应该是为了这个

不,我已经知道答案了,如果在实现中手动补全了setter和getter方法,那么@property在Xcode中的机制是不会自动补全成员变量的,只有没有setter和getter,或者两者其中之一的时候才会自动补全成员变量!
回复 使用道具 举报
楼上正解
回复 使用道具 举报
在自动生成的默认是私有的,自己写一个默认就是保护的,应该是为了这个
回复 使用道具 举报
不介意的话,把题目和答案全发上来研究研究
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马