`
caiwb1990
  • 浏览: 307400 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ios开发-类的"生命周期

阅读更多
光有新学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。一般表示不指向任何对象。

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


最近真忙,忙着减肥。。。唉。
0
0
分享到:
评论

相关推荐

    iOS 仿抖音 Object-C

    通过摘取整体框架中的核心逻辑,并简化代码实现过程,保留核心功能如IOC、AOP、Bean生命周期、上下文、作用域、资源处理等内容的实现细节,读者将获得对iOS开发核心原理的深入认识。 适合人群:具备一定编程基础,...

    iOS开发教程之UIView和UIViewController的生命周期详解

    UIViewController是IOS程序中的一个重要组成部分,下面这篇文章主要给大家介绍了关于iOS开发教程之UIView和UIViewController的生命周期的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

    ios开发介绍及心得.docx

    **iOS开发介绍:** iOS是由苹果公司推出的移动操作系统,专为iPhone、iPad、iPod Touch等设备设计。iOS应用程序通常使用Swift或Objective-C编程语言进行开发。以下是iOS开发的一些关键方面: ...掌握iOS生命周期:

    老生常谈iOS应用程序生命周期

    开发应用程序都要了解其生命周期。 今天我们接触一下iOS应用程序的生命周期, iOS的入口在main.m文件: int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, ...

    iOS移动Web开发

    20170324-第十一次课-RN生命周期 20170328-第十二次课-ListView&TabBar; 20170329-第十三次课-Navigator&原生通信 20170401-第十四次课 20170405-第十五次课-项目01 20170407-第十六次课-项目02 20170410-第十七次课...

    vue中解决微信html5原生ios虚拟键返回不刷新问题

    问题描述: 做微信h5页面时,经过了微信授权才跳转到一级...因为home页面是个滚动列表,所以我采用了keep-alive路由缓存,所以不能在created()和beforeDestroy()生命周期中写,因此我在home.vue中加了组件内的守卫befo

    唯品会企业安全开发生命周期2.0.pdf

    唯品会企业安全开发生命周期2 IOS

    《iOS6开发指南》精彩书摘

    使用nib和故事板技术创建HelloWorld,通过HelloWorld我们讨论了iOS工程模板、应用的运行机制和生命周期、视图器的生命周期。最后介绍API帮助文档和官方案例的使用。 第3章“iOS常用设计模式”。 iOS开发中常用的4种...

    iOS启动框架,支持启动生命周期分发,启动任务分布式注册,同时,统计各启动任务消耗的时间,暴露给外部使用。.zip

    iOS启动框架,支持启动生命周期分发,启动任务分布式注册,启动任务依赖,支持设置启动任务在各生命周期的优先级,执行所在线程以及对其他启动任务的依赖。根据启动任务的依赖关系,检测循环依赖,并发执行,提升...

    Android开发中Activity的生命周期及加载模式详解

    本文给大家介绍Activity的生命周期,如果大家学习过iOS的小伙伴的话,Activity的生命周期和iOS中ViewController的生命周期非常类似。生命周期,并不难理解。一个人的生命周期莫过于生老病死,花儿的生命周期就是花...

    ios app 开发简介 ppt

    ios生命周期,消息流程,基本数据类型,objective-c基础,helloworld示例,uitableview

    java多态的笔试题-iOS-interview:遵循iOS开发人员/工程师面试指南

    应用生命周期,查看生命周期 委托 vs 通知中心 vs 回调 手势识别器 URL 会话请求 在里面 协议如何与泛型交互 泛型 协议:Hashable、HashFunctions、Codable objC NULL,内部 联网 测试 过滤器,

    每个人都试图在其iOS应用程序生命周期的某个时刻实现缓存,这就是我们的事。-Swift开发

    每个人都试图在其应用程序生命周期的某个时刻实现缓存,这就是我们的事。 这是一个库,允许人们使用生存时间(TTL)值和语义来缓存NSData进行磁盘管理。 ? 每个人都试图在其应用程序生命周期的某个时刻实现缓存,这...

    百度地图 功能模块完整版 开发指南

    简介:创建一张百度地图并管理地图的生命周期 详述: (1)创建一张最简单的百度地图; (2)管理地图的生命周期,具体请参看代码部分的相关注释; -------------------------------------------------------------...

    iOS应用程序生命周期(前后台切换,应用的各种状态)详解

    iOS的应用程序的生命周期,还有程序是运行在前台还是后台,应用程序各个状态的变换,这些对于开发者来说都是很重要的。 iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的。在后台时,程序会受到系统...

    iOS App开发中UIViewController类的使用教程

    iOS中的UIViewController是UIKit框架中最基本的一个类。从第一个UI视图到复杂完整项目,都离不开UIViewController作为基础。基于UIViewController的封装和扩展,也能够出色的完成各种复杂界面逻辑。这里旨在讨论...

    基于Qt c++ mysql开发的全设备生命周期管理系统.zip

    操作系统:LInux、IOS、树莓派、安卓开发、微机操作系统、网络操作系统、分布式操作系统等。此外,还有嵌入式操作系统、智能操作系统等。 网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络...

Global site tag (gtag.js) - Google Analytics