黑马程序员——使用self调用方法时的内存分配

来源:互联网 发布:北大青鸟网络学费多少 编辑:程序博客网 时间:2024/05/23 19:19
------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相同。
内存图分析如下:





















0 0
原创粉丝点击