swift构造方法
来源:互联网 发布:大数据英文怎么说 编辑:程序博客网 时间:2024/05/21 10:23
//如果定义属性的时候没有初始化,那么必须在后面写一个?//swift要求,属性是必须有初始值的//只要在构造方法中对属性进行了初始化,那么就不用写?class Person: NSObject { // 定义 "对象"属性可以使用? var name: String? // 定义 "基本数据类型" 最好赋初始值 // Swift中基本数据类型设置为? , super.init()不会分配存储空间 // 所以利用KVC赋值会报属性找不到// var age: Int? var age: Int = 0 //如果是定义一个“对象属性”,那么可以写上? //如果是定义一个基本数据类型,那么建议直接赋值为0,因为super.init()方法在分配存储空间的时候,如果发现属性是一个对象,并且是一个可选类型,那么会给这个属性分配存储空间。但是如果属性是一个基本数据类型,并且是可选类型,那么super.init()不会给该属性分配存储空间,没有存储空间如果在构造方法中用字典使用KVC初始化,将会导致报错:提示基本属性找不到 // 如果要初始化必须要重写init方法, 只要重写了init方法就不用加?号了 override init()//重写了父类的构造方法,如果不重写,默认的构造方法将会失效 { name = "lnj" age = 30 } //重载:允许有同名的方法,中要形参数不一样或返回值不一样 //Swift中支持方法名重载, 同样的名称只要参数不同就可以 // 一旦自定义了init方法, 但是没有重写init方法, 默认的init方法就会失效 //注意:如果自定义了构造方法,并且没有重写父类的构造方法,那么默认的构造方法就会失效 init(name:String, age:Int) { self.name = name self.age = age } //开发中最常见的方法:通过字典创建对象 init(dict: [String: NSObject]) { // 使用kvc给self赋值之前, 必须调用super.init, // 目的是保证对象创建成功 super.init() //注意点:如果想在构造方法中使用KVC给属性赋值,那么 在KVC之前必须调用super.init(),调用 super.init()的目的是在KVC赋值之前给属性分配存储空间 self.setValuesForKeysWithDictionary(dict)//可以直接通过字典初始化 }}
0 0
- Swift UIImageView 构造方法
- Swift中的构造方法
- swift UIImageView构造方法
- swift构造方法
- swift构造方法
- swift构造方法
- Swift-构造方法
- Swift--12构造方法
- Swift中的构造方法
- 13.9 Swift必须构造方法
- Swift 基础学习(指定构造方法和便利构造方法)
- 13.1 Swift指定构造方法和便利构造方法解析
- Swift-指定构造方法和便利构造方法
- Swift:面向对象(继承与构造方法)
- Swift 基础学习(构造方法初印象)
- swift: 方法的重载/重写/KVC构造
- 12.1 Swift构造方法初印象
- 12.3 Swift带有参数的构造方法
- iOS 崩溃日志 Backtrace的符号化
- HDU 1045:Fire Net
- 有些事情不是看到希望才去坚持,而是坚持了才会看到希望
- 【贪心】[BZOJ1034]泡泡堂BNB
- C 语言结构体定义 使用
- swift构造方法
- 【Android开发小记--7】动画--简单的button移动和图片3D翻转
- 哈理工OJ 1692【水题】
- 基于IBM Bluemix的数据缓存应用实例
- 轻蔑这个,鄙视那个,眼高手低,好高骛远,有点料就忍不住到处兜售
- NSURLSession实现图片下载
- ZOJ 1002:Fire Net
- 查找算法之折半查找
- poj 3252 Round Numbers 【数位dp】