黑马程序员技术交流社区

标题: 谁能给我讲下OC中self的用法? [打印本页]

作者: 毛小猪    时间: 2016-4-20 21:20
标题: 谁能给我讲下OC中self的用法?
谁能给我讲下OC中self的用法?
作者: y977975092    时间: 2016-4-20 22:06
谁调用self,self代表的就是谁。
作者: y977975092    时间: 2016-4-20 22:21
  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. }
复制代码

作者: 缘之有缘    时间: 2016-4-20 22:44
前来学习           
作者: king、小白    时间: 2016-4-21 00:10
self总是指向该方法的调用者(对象或类),当self出现在实例方法中的时候,self就代表调用该方法的对像;当self出现在类方法中的时候,self就代表调用该方法的类。
作者: yuanmeng    时间: 2016-4-21 09:12
谁调用self就代表谁,类似于this的作用。
作者: Latinno    时间: 2016-4-22 00:04
self代表当前调用方法的对象
想想方法中调用self能够造成死循环的例子就明白了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2