iOS开发:类的'生命周期'

移动开发 iOS
本文为大家介绍了iOS开发中类的'生命周期'等内容,直接分享给大家,希望对51CTO的各位网友有所帮助,如果有什么意见欢迎交流。

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

要使用某个类的对象呢,当然首先必须先得到一个指向该对象的变量。

例如:

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。一般表示不指向任何对象。

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

责任编辑:闫佳明 来源: apkbus
相关推荐

2022-04-19 07:20:24

软件开发安全生命周期SSDLC应用安全

2012-04-28 13:23:12

Java生命周期

2015-07-09 15:42:48

ios应用生命周期

2015-07-08 16:28:23

weak生命周期

2009-08-12 18:39:01

软件开发的生命周期

2009-05-21 09:12:41

Java开发平台生命周期管理

2011-03-21 09:45:52

Hello WorldObjective-C生命周期

2010-07-14 10:48:37

Perl线程

2009-06-11 11:28:35

JSF生命周期

2009-06-17 15:06:50

Hibernate实体

2019-10-16 10:50:13

Linux内核测试

2012-01-16 09:00:56

线程

2011-06-16 09:31:21

ActivityAndroid

2009-06-18 13:32:39

Java线程生命周期

2013-08-19 17:03:00

.Net生命周期对象

2012-06-20 10:29:16

敏捷开发

2021-07-19 05:52:29

网络生命周期网络框架

2009-06-24 10:47:55

JSF生命周期

2010-06-24 16:18:13

2022-05-20 10:41:22

SDLC开发模型
点赞
收藏

51CTO技术栈公众号