初始化器:init

对象初始化器: -(id)init 可以重载多个。

类型初始化器: +(id)initialize只能有一个。

对象初始化器:

初始化对象实例时,init通常和alloc(手动内存分配)搭配使用。

alloc所做的事情——NSObject已实现。

·在堆上分配合适大小的内存。

·将属性或者实例变量的内存置0。

init所做的事情——可以自定义:

·调用父类初始化器[super init](前置调用)

·初始化当前对象的实例变量(注意是实例变量,不是属性)

new 相当于调用alloc/init的无参数版本。

·Book* book = [Book new];

类初始化器:一般用的很少

比如说类里有一个全局的静态变量,就需要在类初始化的时候赋个初值。

initialize在每个类使用之前被系统自动调用,且只调用一次(每个进程周期)。

子类的initialize会自动调用父类的initialize(前置调用)。

 析构器:dealloc (也叫释放器)

释放对象所拥有的资源,无返回值的函数。

只有对象析构器,没有类型析构器。

自动实现:1.ARC将对象属性引用计数减持。

手动实现:2. 释放不受ARC管理的动态内存,如malloc分配的内存。

手动实现:3. 关闭非内存资源,如文件句柄,网络接口。。。

dealloc由ARC根据对象引用计数规则,在释放对象内存前自动调用,无法手动调用。

子类的dealloc会自动调用父类的dealloc(后置调用)。

objective-C学习笔记(五)函数成员:初始化器和析构器的更多相关文章

  1. Go语言学习笔记(五) [函数]

    日期:2014年7月29日   1.函数定义:func (p type) funcname(q int) (r,s int) {return 0,0 }     func: 保留字,用于定义一个函数 ...

  2. Python学习笔记(五)函数和代码复用

    函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Python提供了许多内建函数,比如print().同样,你也可以自己创建函数, ...

  3. python学习笔记(五)---函数与类

    函数 def为定义函数的一个标志 demo1: def greet_user(username): print("Hello, " + username.title() + &qu ...

  4. JS学习笔记 (五) 函数进阶

    1.函数基础 1.1 函数的基本概念 函数是一段JavaScript代码,只被定义一次,但是可以被调用或者执行许多次.函数是一种对象,可以设置属性,或调用方法. 函数中的参数分为实参和形参.其中,形参 ...

  5. java之jvm学习笔记五(实践写自己的类装载器)

    java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...

  6. Typescript 学习笔记五:类

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  7. muduo网络库学习笔记(五) 链接器Connector与监听器Acceptor

    目录 muduo网络库学习笔记(五) 链接器Connector与监听器Acceptor Connector 系统函数connect 处理非阻塞connect的步骤: Connetor时序图 Accep ...

  8. C++基础 学习笔记五:重载之运算符重载

    C++基础 学习笔记五:重载之运算符重载 什么是运算符重载 用同一个运算符完成不同的功能即同一个运算符可以有不同的功能的方法叫做运算符重载.运算符重载是静态多态性的体现. 运算符重载的规则 重载公式 ...

  9. C#可扩展编程之MEF学习笔记(五):MEF高级进阶

    好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用 ...

  10. AngularJS学习笔记2——AngularJS的初始化

    本文主要介绍AngularJS的自动初始化以及在必要的适合如何手动初始化. Angular <script> Tag 下面通过一小段代码来介绍推荐的自动初始化过程: <!doctyp ...

随机推荐

  1. HTML5学习笔记之Input类型

    Input类型——email email类型用于包含email地址的输入域,在输入地址时会自动验证email域的值 例:Email:<input type="email" n ...

  2. java积累

    数组的使用 package javaDemo; import java.util.*; /** * * @author Administrator * @version 1.0 * * */ publ ...

  3. Android TextView drawableLeft 在代码中实现

    方法1 Drawable drawable= getResources().getDrawable(R.drawable.drawable); /// 这一步必须要做,否则不会显示. drawable ...

  4. STMP发送邮件被当垃圾邮件处理的解决方法

    昨天使用了.Net通过smtp发送邮件的方式发送了一封邮件到自己的QQ邮箱,但是发送成功后并没有提示邮箱收到新的邮件,而且去收件箱里面也没有新增的邮件. 这让本人觉得奇怪,所以就觉得是否被当作垃圾邮件 ...

  5. 配置tomcat的https通信(单向认证)

    1.首先用jdk带的工具生成证书库 打开cmd命令行窗口,cd 到tomcat安装目录的bin下面执行 keytool -v -genkey -alias tomcat -keyalg RSA -ke ...

  6. SET ANSI_NULLS (Transact-SQL)

    指定在 SQL Server 2014 中与 Null 值一起使用等于 (=) 和不等于 (<>) 比较运算符时采用符合 ISO 标准的行为. 当 SET ANSI_NULLS 为 ON ...

  7. 全面修复IE,注册IE所有dll

    全面修复IE,注册IE所有dll 复制,粘贴到文本文档里,保存成.bat文件,双击运行. rundll32.exe advpack.dll /DelNodeRunDLL32 %systemroot%\ ...

  8. 获取 web容器中的bean

    public class WebContextBeanFinder { public static Object getBean(String beanId) { ServletContext ser ...

  9. Java学习之字符串练习

    1.给定一个字符串数组.按照字典顺序进行从小到大的排序. * 思路: * 1,对数组排序.可以用选择,冒泡都行. * 2,for嵌套和比较以及换位. * 3,问题:以前排的是整数,比较用的比较运算符, ...

  10. js调用ASP.NET打印代码

    第一步:添加下面的js <script type="text/javascript">           function printsetup() {        ...