Swift 初始化顺序

原创 2016年08月31日 10:15:54

/*
之前写初始化类,一直也没注意有啥讲究,今天看到了 王巍 先生的书才发现有点说法 就记一下
*/

1.swift 写初始化方法,必须保证声明的所有属性都被初始化,也因此初始化的调用顺序就有点说法了

2.示例

class People {

var name: String

init() {

    name = "qq"

}

}

class TempPeople: People {

let page: Int

override init() {

    page = 10

    super.init()

    name = "111"

}

}
/*
从上面的示例来看,会发现 子类属性 page 的声明是在 super.init()之前,所以我们在写子类继承父类的初始化方法里,一定要保证“当前子类实例的成员变量初始化完成后才能调用父类的初始化方法” 否则就会报错
*/

尾记
如果子类不需要再初始化的时候改变父类的属性值,则就不需要调用super.init(),只需要初始化子类里面的值便可。虽然我们没有显式的调用super.init(),但是这已经是初始化的最后阶段了,swift已经替我们完成了。
至此感谢王巍先生

版权声明:本文为博主原创文章,未经博主允许不得转载。

数据结构-顺序表的初始化

//顺序表的初始化 #include #include // #define OK 1; #define OVERFLOW -2 #define MAXSIZE 100//顺序表可能达到的最大长度 ...
  • u014795767
  • u014795767
  • 2014年09月24日 17:12
  • 5206

Java基础总结之类与对象的初始化顺序

Java
  • crazyf2015
  • crazyf2015
  • 2015年06月27日 21:51
  • 2195

C++复习笔记——初始化列表顺序

参考测试代码1: #include using namespace std; class A { public: A(int iniI,int iniJ,int iniK):i(in...
  • huqinweI987
  • huqinweI987
  • 2016年02月18日 01:01
  • 3114

Spring-Bean初始化顺序

InitializingBean     Spirng的InitializingBean为bean提供了定义初始化方法的方式。InitializingBean是一个接口,它仅仅包含一个方法:after...
  • hsgao_water
  • hsgao_water
  • 2016年09月01日 18:07
  • 5748

C++初始化顺序

如下代码所示: class test { const int a; std:string str; object o; test():str(“...
  • csuxian
  • csuxian
  • 2016年03月29日 13:48
  • 851

做一个合格的程序猿之浅析Spring IoC源码(十)Spring Bean的初始化顺序

①首先执行的是构造函数 ②然后执行的BeanNameAware这个接口中的方法 ③然后执行的是BeanFactoryAware这个接口中的方法 ④执行InitializingBean接口中的af...
  • linuu
  • linuu
  • 2016年03月12日 13:12
  • 1531

Java类的变量初始化顺序

大家在去参加面试的时候,经常会遇到这样的考题:给你两个类的代码,它们之间是继承的关系,每个类里只有构造器方法和一些变量,构造器里可能还有一段代码对变量值进行了某种运算,另外还有一些将变量值输出到控制台...
  • meegomeego
  • meegomeego
  • 2015年08月05日 12:14
  • 1626

C++类构造函数初始化列表执行顺序

C++类构造函数初始化列表执行顺序
  • yingzheng1983
  • yingzheng1983
  • 2016年08月05日 12:24
  • 3207

Swift入门(七)——结构体(Struct)

引子之前我们在用Int,String等类型的时候,可能没有仔细研究过,其实这些基本类型与C或者Java不一样,不是严格的“基本类型”,他们其实是经过封装的结构体。按住Alt键点击Int类型后,可以看到...
  • abc649395594
  • abc649395594
  • 2015年08月03日 23:58
  • 4266

C++成员变量初始化顺序

1、成员变量在使用初始化列表初始化时,与构造函数中初始化成员列表的顺序无关,只与定义成员变量的顺序有关。因为成员变量的初始化次序是根据变量在内存中次序有关,而内存中的排列顺序早在编译期就根据变量的定义...
  • MM_dou
  • MM_dou
  • 2017年01月15日 14:47
  • 628
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Swift 初始化顺序
举报原因:
原因补充:

(最多只允许输入30个字)