A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 苏子瞻201068 中级黑马   /  2015-9-20 08:16  /  808 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

       alloc和release两个方法的意思是分配一个内存,以及回收一个内存:逻辑是alloc一次,这个对象计数器就+1,release一次,这个对象计数器就-1,当计数器是0时,系统自动释放内存           ASStudent * student = [[ASStudent alloc]init];  //实例化并初始化一个对象
           [student release];  //释放这个对象所占用的内存
       实例化并初始化对象其实分两步:
1.先分配内存,但其实是指向内存的指针,所以student前面加*表示这对象其实是个对象指针,NSObject类的alloc和release的返回值都是(id),即通用对象指针一般的对象都存在堆区(有栈区、堆区、数据区、只读区),堆区的对象没有名字不可以直接访问,所以需要命名个指针,指向这个堆区的对象,利用指针使用对象。


2.分配内存后一般都会初始化为根类默认的0,但是有时候我们需要初始化为自己想要的状态,需要编写这个init函数


      消息传递(message passing)
//给student发送一个setName消息,内容是设置名字为tom
[student setName:@"tom"];
所以消息传递就是我们之前所说的调用某个函数。但是在OC里面确实是消息传递,而不是调用,C++这些语言里是调用,一般是这种形式student.setName("tom")。所以注意以下这个称呼的转换即可。

1 个回复

倒序浏览
写得不错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马