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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 似神仙 中级黑马   /  2015-12-3 20:29  /  927 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

很强大的一个东西


自动生成 对象属性,   自动生成属性的 set  get方法的声明与实现.




本质是:            1.检测有没有一个NSString *_name;如果没有自动创建
             2.检测有没有_设计get与set声明,如果没有,按标准形式设置


需要注意:  自动生成的属性 是@private
                 如果需要别的权限,自己应以手动设置属性
                 如果手动创建了一个标准格式的set get ,不会自动创建该步骤
                 如果把实现里的get set全手打出来, @property不会起作用

8 个回复

倒序浏览
总结的不错!
回复 使用道具 举报
生成实例变量的属性不是private,子类可以继承,但是对子类不可见,只能通过父类的封装方法来访问
回复 使用道具 举报
Tmac90301 发表于 2015-12-3 22:32
生成实例变量的属性不是private,子类可以继承,但是对子类不可见,只能通过父类的封装方法来访问 ...

那个好像不属于继承吧?上课时候老师提到的property生成的变量属于私有变量 没法继承的  只要子类智能提示不显示的不就是不继承吗? 只能通过父类的点语法调用get和set方法来访问property生成的变量
回复 使用道具 举报
自动生成不是private的,而是protect
回复 使用道具 举报
吃饱就睡 发表于 2015-12-4 00:59
那个好像不属于继承吧?上课时候老师提到的property生成的变量属于私有变量 没法继承的  只要子类智能提 ...

嗯,按照语法规定来说,确实是不属于继承的。但是虽说是父类的东西,子类看不见,但是子类确实是用有的。父类所有的东西都只是相对私有,只要父类可以访问到,子类其实也有办法访问到
回复 使用道具 举报
这个其实和java里的set和get差不多的
回复 使用道具 举报
Flowerkanzhe 发表于 2015-12-4 12:38
自动生成不是private的,而是protect

手打出来的属性是 protect     @property设定出来的是private
回复 使用道具 举报
吃饱就睡 发表于 2015-12-4 00:59
那个好像不属于继承吧?上课时候老师提到的property生成的变量属于私有变量 没法继承的  只要子类智能提 ...

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