码迷,mamicode.com
首页 > 其他好文 > 详细

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

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

标签:int   c   数据   使用   new      

#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对象的行为和内存分析,匿名对象

标签:int   c   数据   使用   new      

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!