------
Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1.self在对象方法中使用,指代的是调用当前对象方法的那个对象
(1)Person类的声明
<span style="font-size:14px;">@interface Person : NSObject
-(void)run;
-(void)eat:(NSString*) foodName;
@end</span>
(2)Person类的实现
<span style="font-size:14px;">@implementation Person
-(void)run{
NSLog(@"人在走!");
}
-(void)eat:(NSString*) foodName{
NSLog(@"人在吃%@",foodName);
NSLog(@"%p",self);//打印地址
[self run];//<span style="font-family: Arial, Helvetica, sans-serif;">self 指代的就是p</span>
}
@end</span>
(3)调用Person类
int main(int argc, const char * argv[]) {
@autoreleasepool {
//当前对象p 先吃东西,然后再走(吃和走是同一个对象)
Person *p = [Person new];
NSLog(@"%p",p);//打印地址
[p eat:@"油条"];
}
return 0;
}
(4)运行结果
分析:从以上打印结果可以看出,self和p相同。
内存图分析如下: