属性的小问题
来源:互联网 发布:无线串口软件 编辑:程序博客网 时间:2024/05/29 04:27
在OC中,为了方便我们设置访问器和设置器,有一个关键字来让程序自动产生getter和setter的方法,那就是@property的方法,在一开始使用这个方法使我的代码简洁了很多,直到有一次发生了一个问题,才让我真正明白这个@property的含义(也不一定是真正明白,至少明白多了一点),在同时使用继承和属性的时候发生了一点小问题。
我们先创建一个工程,工程里面再创建一个类,类中定义一个属性name和一个简单的sayHi方法
#import <Foundation/Foundation.h>//Student.h @interface Student : NSObject{ NSString *_name;}@property (nonatomic,retain)NSString *name;-(void)sayHi;@end
然后在实现文件中实现sayHi方法
#import "Student.h" //Student.m@implementation Student-(void)sayHi{ NSLog(@"大家好,我是%@",_name);}@end
然后我们在创建一个子类newStudent继承于Student。然后在重写newStudent的sayHi的方法时候出现了问题,就是不能够访问name了!
#import "NewStudent.h"@implementation NewStudent-(void)sayHi{ //NSLog(@"大家好,我是%@",_name);//这个时候_name报错}@end
当我把_name改变成为name的时候,依然出错了。
在当时我认为属性的本质也是一种方法而已,按道理来说应该是可以继承的,不过现在name居然不能访问,在网上百度了一阵,google了一阵之后依然没结果。由于一个契机(是什么忘了)突然想到,name的作用域的问题,再重新百度才查出来,
属性定义的实例变量是一个私有的变量,子类当然不能继承,所以才出错。额。。。。。。。半天时间就这样过去了
0 0
- 属性的小问题
- 使用SlidingMenu的属性设置和我的小问题
- 一个Spring中的属性命名的小问题
- 关于js修改css属性的一个小问题
- CSS中关于属性值继承的小问题
- 有关autoresizingMask属性遇到的一个小问题
- 使用SlidingMenu的属性设置和小问题
- 关于子进程继承父进程属性的小问题总结
- self.toDoItems访问属性 ,_toDoItems 是直接访问变量 -被搞死的一个小问题
- 关于子进程继承父进程属性的小问题总结
- 属性编辑的问题
- 属性编辑的问题
- action的属性问题
- telnetd的小问题
- C++的小问题
- renameTo()的小问题
- vsftp的小问题
- COMMA的小问题
- mysql 解决数据库连接变慢
- cocos2dx之商店源码
- Linux 下的 CONFIG_OF 选项
- Oracle中merge into的使用
- iOS 实时定位功能
- 属性的小问题
- java.lang.IllegalArgumentException:No view found for id for fragment 的解决
- Unity如何在Android上弹出通知消息
- hdu 5335 Walk Out 搜索+贪心
- UserDefault
- Thinkphp 配置404页面
- Ubuntu终端Terminal常用快捷键
- mongodb源码分析
- Sublime Text 3能用支持的插件推荐