OC之self详解
2015-08-31 14:39
309 查看
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;
@end
@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);
}
@end
intmain()
{
Person*p = [Person new];
[p setAge:10];
[p test];
return 0;
}
使用self与super调用方法的区别:
使用self调用方法时,self先从当前类中寻找方法,如果没有寻找到再去父类中寻找。而super直接在父类中寻找方法。
#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;
@end
@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);
}
@end
intmain()
{
Person*p = [Person new];
[p setAge:10];
[p test];
return 0;
}
使用self与super调用方法的区别:
使用self调用方法时,self先从当前类中寻找方法,如果没有寻找到再去父类中寻找。而super直接在父类中寻找方法。
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- Ruby self在不同环境的含义
- PHP中new static() 和 new self() 的区别介绍
- javascript中的self和this用法小结
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- python self,cls,decorator的理解
- python 参数列表中的self 显式不等于冗余
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- PHP中static关键字以及与self关键字的区别
- IOS 改变键盘颜色代码
- Android和IOS的浏览器中检测是否安装某个客户端的方法