self关键字

1. 成员变量和局部变量同名

  • 当成员变量和局部变量同名时,采取就近原则,访问的是局部变量
  • 用self访问成员变量,区分同名的局部变量

2.使用细节

1)     出现的地方:所有的OC方法中(对象方法\类方法),不能出现在函数

2)     作用

  • 使用 "self->成员变量名" 访问当前方法调用的成员变量
  • 使用 "[self 方法名];" 来调用方法(对象方法\类方法)
  • 低级错误:用self去调用函数      (只要函数名就可以)
  • 类方法中用self调用对象方法,对象方法中用self调用类方法
  • self死循环

3. 常见错误

  • 低级错误:用self去调用函数
  • 类方法中用self调用对象方法,对象方法中用self调用类方法
  • self死循环
- (void)test1
{
_age = ;//成员变量 int _age = ;
NSLog(@"调用了-test1方法-%d", _age);
[self test2];
} - (void)test2
{
int _age = ;
NSLog(@"调用了-test2方法-%d", self->_age); //用self访问成员变量,区分同名的局部变量,为20

最新文章

  1. AOP学习心得&jdk动态代理与cglib比较
  2. PowerDesigner中表名过长,自动生成的主键名截取的问题
  3. 【转载】App.config/Web.config 中特殊字符的处理
  4. 萌萌的websocket原理解析
  5. rsync密码使用要注意的几个点
  6. openstack问题汇总
  7. testng环境设置
  8. 优化studio的速度
  9. iOS - UI - UIPageControl
  10. KVC, KVO实现原理剖析
  11. ASP申请单动态添加实现方法及代码
  12. [TypeScript] Using Lodash in TypeScript with Typings and SystemJS
  13. Linux学习笔记7——linux中的静态库和动态库
  14. HttpHelper工具类
  15. Docker集群实验环境布署--swarm【2 搭建本地镜像仓库】
  16. insert ,update 以及merge 的使用
  17. 使用MyBatis 框架犯的错误
  18. iOS----------上传遇到的问题
  19. Docker-单宿主机下的网络模式
  20. Java创建线程的两种方式

热门文章

  1. Servlet 工作原理解析
  2. 【HDU 3938】Portal (并查集+离线)
  3. iOS 硬件授权检测:定位服务、通讯录、日历、提醒事项、照片、蓝牙共享、麦克风、相机等(转)
  4. 代理、通知、KVO的应用
  5. ARP协议工作流程
  6. watch监听 chechbox 全选
  7. Linux基础3(文件权限)
  8. [bzoj4326][NOIP2015]运输计划
  9. 轻松搞定C语言中复杂的声明
  10. 降低磁盘IO使Oracle性能优化(转)