博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OC之self详解
阅读量:7166 次
发布时间:2019-06-29

本文共 775 字,大约阅读时间需要 2 分钟。

hot3.png

self是一个指针,用在方法中时,哪个对象调用该方法self指针就指向哪个对象,可以把它当作调用该方法的那个对象的指针一样使用。

#import<Foundation/Foundation.h>

/*

 self的用途:

 1谁调用了当前方法,self就代表谁

 * self出现在对象方法中,self就代表对象

 * self出现在类方法中,self就代表类

  2在对象方法利用"self->成员变量名"访问当前对象内部的成员变量

  3 [self 方法名]可以调用其他对象方法\类方法

 */

@interfacePerson : NSObject

{

    int _age;

}

 

-(void)setAge:(int)age;

-(int)age;

-(void)test;

 

@implementationPerson

- (void)setAge:(int)age

{

    // _age = age;

    self->_age =age;

}

-(int)age

{

    return self->_age;

}

 

-(void)test

{

   // self:指向了方向调用者,代表着当期对象

    int _age = 20;

    NSLog(@"Person的年龄是%d",self->_age);

}

 

 

intmain()

{

                Person*p = [Person new];

     [p setAge:10];

        [p test];

        return 0;

}

使用self与super调用方法的区别:

使用self调用方法时,self先从当前类中寻找方法,如果没有寻找到再去父类中寻找。而super直接在父类中寻找方法。

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://my.oschina.net/u/2448717/blog/499556

你可能感兴趣的文章
R语言markov switching model马尔可夫转换模型研究商业周期
查看>>
设计模式学习
查看>>
Robot Framework(五)使用测试库
查看>>
Spark2 Model selection and tuning 模型选择与调优
查看>>
使用vs code开发.net core2.2时OmniSharp.MSBuild.ProjectLoader无法解析"xxx"的解决方法
查看>>
iOS之 opencv3.0.framework
查看>>
css 兼容ie8 rgba()用法
查看>>
[转载]如何从 Windows Phone 的罗盘传感器获取数据
查看>>
ASP.NET MVC5 入门
查看>>
动态规划
查看>>
Java enum枚举的使用方法
查看>>
主账号删除后,查询应用时,无法翻页
查看>>
Android 4.4.4: java.lang.SecurityException: Package com.android.settings does not belong to 1001
查看>>
java中生成验证码,以及验证码的使用
查看>>
C#二维码
查看>>
创建包
查看>>
数据查询
查看>>
织梦list文章列表按权重排序
查看>>
DNS Prefetching
查看>>
hive基本操作与应用
查看>>