ios开发-类的"生命周期"

光有新学IOS的朋友问我为什么要 [[*** alloc]init],今天就专门来说一下一个类的“生命周期”~~~. :D

要使用某个类的对象呢,当然首先必须先得到一个指向该对象的变量。
例如:
Class *classInstance;
在oc中,这个变量的变量名就是classInstance了,类型就是指针,指向某个Class类的实例。
但是,这只是声明的代码,而不是创建了Class实例。

一个对象的生命周期是从创建开始,然后接受消息,最后在不需要的时候呗释放掉。
而怎么创建对象呢? 我们通过向类发送alloc消息,就可以创建对象了。一个类收到了alloc消息后,就会在内存中创建对象,并且返回一个指向新对象的指针,我们可以把指针保存在某个变量里。
例如:
Class *classInstance = [Class alloc];
这样就创建了一个Class类的实例,并且将返回的对象指针赋给了classInstance变量。这样我们就得到一个指向某个实例的指针,就能向它发送消息了。

但是,这样我们就能使用了吗?当然不是了。虽然向类发送alloc消息能够创建实例,但是在没有完成初始化之前,新创建的实例是无效的。所以对新创建的实例,必须先向它发送一个初始化消息。
即:
[classInstance init];

而init返回的也是指针,和alloc消息一样,都指向新创建的对象,所以我们可以嵌套消息发送,先让其收到alloc消息创建对象,然后再收到init消息完成初始化。
即:
Class *classInstance [[Class alloc] init];

正如开头所说的,完成了一个类的创建。


而释放对象代码就比较简单了,(实际很复杂,着就不多说了 - -)
classInstance = nil ;

nil是值为0的指针,即java中的null,C里的NULL。一般表示不指向任何对象。

好吧,今天简单的稍微说到这里。


最近真忙,忙着减肥。。。唉。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值