OC对象在内存中的细节

2016年8月1日 星期一 19:37

#####import <Foundation/Foundation.h>

@interface Person :NSObject

{   @public

    int_age;

    double_height;

    float_kg;

}

-(void)eatFood:(NSString*)food;

-(void)sleep;

-(void)walk;

@end

@implementation Person

 

-(void)eatFood:(NSString*)food

{

    NSLog(@"%@",food);

}

-(void)sleep

{

    NSLog(@"睡觉");

}

-(void)walk

{

    NSLog(@"散步");

}

@end
int main(int argc, const char * argv[]) {

    @autoreleasepool{

        /*

         创建类的是时候做了那些事

         1.开辟person的存储空间,new会在堆内存中创建一块存储空间

         2.初始化person的所有属性

         3.返回person的指针

         创建类的时候返回的地址其实就是类的第0个地址,因为类就是个结构体

         注意:类的第0个地址不是_age,而是isa指针,isa占8个字节

  
      p = 0x100501230

  
      &age = 0x100601238

         对象方法调用
方法流程 在p的储存空间找到isa指针,然后通过isa在找对应类对象,再从类对象中找方法

         类方法调用
方法流程 先去堆内存中找有没有person这个类,有person
直接调用方法
      */

        Person * p =[Person new];

        p->_age = 23;

        p->_height = 178.3;

        p->_kg = 70;

        NSLog(@"p = %p",p);

        NSLog(@"&age = %p",&(p->_age));

 
  }

    return 0;

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 曾经有一份美好的爱情放在我的面前我没有珍惜。等到失去后才后悔莫及。如果可以再对小李说。毛欣想说。这辈子无缘再牵手。...
    毛欣与小李阅读 3,375评论 0 13
  • 铃声打响,同学们你拥我挤得跑下了楼梯,去迎接快乐的足球课。 我正在和我的好朋友玩得正嗨,一些同学把我们的目...
    少女故事阅读 437评论 0 1
  • ‘做官要三思’!什么叫‘三思’?‘三思’就是‘思危、思退、思变’!知道了危险就能躲开危险,这就叫‘思危’;躲到人家...
    珍是路人甲阅读 291评论 0 2
  • 昨天与女同事午间吃饭,酒足饭饱之后她突然伤感起来,她说,为什么物质和精神之间,现在的人都会选择物质呢?鉴于此前与之...
    戒嗔阅读 16,818评论 23 51
  • JavaScript 通过XMLHttpRequest(XHR)来执行异步请求,这个方式已经存在了很长一段时间。虽...
    代码和远方阅读 652评论 0 0

友情链接更多精彩内容