首页 > 其他 > 详细

黑马程序员 oc对象的行为和内存分析,匿名对象

时间:2014-05-08 12:25:28      阅读:451      评论:0      收藏:0      [点我收藏+]

#import <Foundation/Foundation.h>

@interface Car : NSObject

{

  @public

   int speed;

   int wheels;

}

// oc方法必须是-开头

// oc方法中所有的数据类型必须得用括号括起来

// oc方法中的()就是用来扩住数据类型的

-(void)run;

@end

@implementation Car

- (void)run

{

    NSLog(@"%d个轮子和速度为%d的车子跑起来了!");

}

@end

int main()

{

    // 当Car做了个new行为就是创建了一个新对象,并返回对象本身,返回一个内存地址,所有的属性初始化,并且值为0,而这个对象所拥有3个属性为speed,wheels,isa。isa来源于基类即NSObject

    Car *car = [Car new];

    car->speed = 250;

    car->wheels = 4;

    [Car new]->speed = 300;

    // 我们知道输出的是速度为0的车子跑起来了,这是为什么呢?因为[Car new]代表重新创建了一个对象,它的成员变量都为0,所以使用匿名对象要慎重,最好不用

    NSLog(@"速度为%d的车子跑起来了",[Car new]->speed);

    // 向car所指向的对象发送一个run消息,实质上是把run方法包装成一个SEL数据,通过isa指针从类中找到与之相应的SEL数据获取方法地址,通过方法地址调用方法,这里存在缓存,当下次再通过SEL数据寻找时,会从上次结果中寻找

    [car run];

}

黑马程序员 oc对象的行为和内存分析,匿名对象,布布扣,bubuko.com

黑马程序员 oc对象的行为和内存分析,匿名对象

原文:http://www.cnblogs.com/wtbkof/p/3714296.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!