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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 毛小猪 中级黑马   /  2016-4-20 21:20  /  1263 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

谁能给我讲下OC中self的用法?

6 个回复

倒序浏览
谁调用self,self代表的就是谁。
回复 使用道具 举报
  1. #import <Foundation/Foundation.h>
  2. @interface Person : NSObject
  3. @property(nonatomic,assign)int age;//属性
  4. -(void)run;//方法的声明
  5. @end

  6. @implementation Person //方法的实现
  7. -(void)run{
  8.    
  9.     NSLog(@"self.age=%d",self.age);//谁调用self,self就代表谁
  10. }
  11. @end

  12. int main(int argc, const char * argv[]) {
  13.     @autoreleasepool {
  14.         Person *p=[Person new];//对象方法创建对象
  15.         [p setAge:10];//设定值 age=10
  16.         //正常情况下是这样的     [p age]读取age的值
  17.        NSLog(@"age=%d",[p age]); // age=10
  18.             [p run]; //这里打印出来显示 self.age=10,age为什么会等于10呢? 这就说明self代表的是对象p,自然而然,"谁调用,就代表谁"这句话的意思就显而易见了。
  19.         
  20.         
  21.     }
  22.     return 0;
  23. }
复制代码
回复 使用道具 举报
前来学习           
回复 使用道具 举报
self总是指向该方法的调用者(对象或类),当self出现在实例方法中的时候,self就代表调用该方法的对像;当self出现在类方法中的时候,self就代表调用该方法的类。
回复 使用道具 举报
谁调用self就代表谁,类似于this的作用。
回复 使用道具 举报
self代表当前调用方法的对象
想想方法中调用self能够造成死循环的例子就明白了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马