一、初始化方法(init()) 
1、定义:类初始化对象时所调用的方法 
2、分类: (1)默认初始化方法 
(2)便利初始化方法 
(3)使用闭包 
3、一些注意点: 
(1)方法固定名为init,没有返回值,方法名init前面也不需要加func 
(2)在创建对象之后,如果要使用对象的属性之前,必须对属性初始化 
(3)声明一个变量,必须赋初始值,除非这个变量是强制解包可选,或者在初始化方法赋初始值,也可达到同样的效果 
(4)初始化方法可以多个存在,并且每一个的方法名都是init,但是参数要不同。对于方法参数不同,不仅仅通过参数类型来判断,还涉及参数的名称,这个在其他语言中称为:方法的重载(参数名或者参数别名不同) 
4、一些例子的运用代码块

4.1、默认初始化方法,声明成员属性的时候,不赋初始值,但必须要有初始话方法对成员变量进行初始化 

4.2、当声明为强制解包可选(!)可以不用初始化方法,在类进行实例化对象的时候再对变量进行赋初始值,但是有也没关系。 

4.3、多个初始化方法并行(方法的重载) 

4.4、初始化方法的分类 
(1) 使用提供的默认初始化方法 

(2)便利初始化方法及其重载 

(3)使用闭包(如果某个存储属性的默认值需要特别定制或者准备,那么久可以使用闭包来初始化这个属性的默认值) 

二、反初始化方法(deinit()) 
1、定义:可以这么理解,初始化方法是为了类创建对象的时候,使用对象属性对其属性赋初始值,那么当你这个对象销毁的使用,也要对气属性进行释放。构造那么一个场景:当我们建立一个数据库访问,在初始化的时候打开链接,如果程序退出,链接不释放,资源就浪费了,反初始化方法可以释放这个链接,减少资源浪费。 
2、注意点 
当要关闭链接的时候,要把对象设置为nil,不然反初始化方法不会被调用

init()和deinit()的更多相关文章

  1. Swift - 类初始化和反初始化方法(init与deinit)

    1,init():类的初始化方法(构造方法) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ...

  2. imx6 lvds 代码分析

    查看imx6 kernel中lvds设备和驱动的初始化过程. 相关文档: arm/arm/mach-mx6/board-mx6q_sabresd.c kernel/drivers/video/mxc/ ...

  3. wpa_supplicant软件架构分析

    wpa_supplicant软件架构分析 1. 启动命令 wpa supplicant 在启动时,启动命令可以带有很多参数,目前我们的启动命令如下: wpa_supplicant /system/bi ...

  4. wpa_supplicant 使用

    (1)通过adb命令行,可以直接打开supplicant,从而运行wpa_cli,可以解决客户没有显示屏而无法操作WIFI的问题,还可以避免UI的问题带到driver.进一步来说,可以用在很多没有键盘 ...

  5. 如何使用Instruments诊断App(Swift版):起步-b

    无论你写过许多iOS应用,还是刚刚开始你的第一个应用,毫无疑问,你都会想出一些新点子,或者想去弄明白你该怎么做,来让你的app变得更好. 除去添加新特性来优化你的应用,有一件事是所有好的开发者都回去做 ...

  6. git submodule 使用过程中遇到的问题

    git submodule 使用过程中遇到的问题 资源文件 原.gitmodules文件的内容如下: [submodule "Submodules/FFmpegWrapper"] ...

  7. 算法与数据结构(一) 线性表的顺序存储与链式存储(Swift版)

    温故而知新,在接下来的几篇博客中,将会系统的对数据结构的相关内容进行回顾并总结.数据结构乃编程的基础呢,还是要不时拿出来翻一翻回顾一下.当然数据结构相关博客中我们以Swift语言来实现.因为Swift ...

  8. Beginning SDL 2.0(3) SDL介绍及BMP渲染

    SDL是一个跨平台的多媒体库.为了实现跨平台,SDL提供了一个简单的界面库抽象,比如提供了SDL_Window用于表示窗口句柄,SDL_Surface.SDL_Texture.SDL_Renderer ...

  9. wpa_supplicant下行接口浅析

    wpa_supplicant通过socket通信机制实现下行接口,与内核进行通信,获取信息或下发命令. 以下摘自http://blog.csdn.net/fxfzz/article/details/6 ...

随机推荐

  1. 解决PhoneGap不支持viewport的几种方法

    前几天用phonegap编译GameBuilder+CanTK时,发现HTML里的viewport无效.CanTK根据devicePixelRatio检测设备的DPI,然后用viewport设置正确的 ...

  2. computer English

    算法常用术语中英对照Data Structures 基本数据结构Dictionaries 字典PriorityQueues 堆Graph Data Structures 图Set Data Struc ...

  3. Android系统启动过程-uBoot+Kernel+Android

    摘要:本文是参考大量网上资源在结合自己查看源代码总结出来的,让自己同时也让大家加深对Android系统启动过程有一个更加深入的了解!再次强调,本文的大多数功劳应归功于那些原创者们,同时一些必要的参考链 ...

  4. 背景大图隔几秒切换(非轮播,淡入淡出)--变形金刚joy007 项目总结

    工作日想了好久,周日回家才想出来的... 图片切换(非轮播,淡入淡出) 1.切换2.停止 <html> <head> <meta content="text/h ...

  5. Shell基础:Shell和Mysql交互

    通过命令行和Mysql交互 [root]#mysql -uroot -p123 -e "show databases"   -e: execute: 执行数据库命令 通过脚本和数据 ...

  6. java synchronized类锁,对象锁详解(转载)

    觉得还不错 留个记录,转载自http://zhh9106.iteye.com/blog/2151791 在java编程中,经常需要用到同步,而用得最多的也许是synchronized关键字了,下面看看 ...

  7. hdu----(5055)Bob and math problem(贪心)

    Bob and math problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  8. 《Play for Java》学习笔记(一)项目框架

    从今天开始认真复习<Play for JAVA>,该书以一个案例为主线,以前为应付项目马马虎虎看了一遍,好多地方都不明白!现在跟着这本书再走一遍,认真模拟,当做一个项目啦!! 一.Play ...

  9. 7款适用老旧设备并对初学者非常友好的轻量级Linux发行版

    我们由从 7 到 1 的顺序向大家介绍. 7. Linux Lite 正如其名,Linux Lite 是 Linux 发行版的一个轻量级版本,用户并不需要强大的硬件就可以将它跑起来,而且其使用非常简单 ...

  10. div在固定高的文字垂直居中

    <div style='display:table; height:100px;'> <div style='display:table-cell; vertical-align:  ...