swift 自定义类的构造函数,有参构造、无参构造
来源:互联网 发布:手机淘宝供俏装修店铺 编辑:程序博客网 时间:2024/04/29 14:09
import UIKitclass person : NSObject { var name : String? var age : Int = 0 //1.重写父类的初始化方法 override init(){ //在构造函数中,如果没有明确调用super.init(),那么系统会自动帮你调用super.init() super.init() print("-------") } //2.自定义构造函数,直接追加参数 init(name:String , age:Int) { self.name = name self.age = age } /* //3.1自定义构造函数,使用字典作为参数 (第一种方法) init(dict : [String:Any]) { let tempName1 = dict["name"] //此时得到的tempName1是Any?任意的可选类型 let tempAge1 = dict["age"] //此时得到的tempAge1是Any? 任意的可选类型 //as?最终转成的类型是一个可选类型 //as!最终转成的类型是一个确定类型 let tempName2 = tempName1 as? String //此时得到的tempName2是String? 字符串的任意类型 name = tempName2 //swift是强类型语言,只有相同的类型才可以赋值 //第一种age赋值方法,不安全如果字典中没有传age参数会崩溃 //let tempAge2 = tempAge1 as! Int //此时得到的tempAge2是Int Int类型 //age = tempAge2 //swift是强类型语言,只有相同的类型才可以赋值 //第二种age赋值方法,如果字典中没有传age参数不会造成崩溃 if let tempAge = tempAge1 as? Int {//先把任意可选类型转化成Int?可选类型,再使用可选绑定拿到int值 self.age = tempAge } }*/ //3.2自定义构造函数,使用字典作为参数 (第二种方法) init(dict:[String:Any]) { super.init() setValuesForKeys(dict) } //避免字典参数中传的参数在类中没有定义相应的属性造成崩溃,重写此方法 override func setValue(_ value: Any?, forUndefinedKey key: String) { } }//创建person对象let p1 = person()//使用有参构造创建person对象let p2 = person(name:"zhengyanfeng" , age:18)print(p2.name!,p2.age)//使用以字典为参数的有参构造创建对象let p3 = person(dict: ["name":"zhengyanfeng","age":17,"height":1.88])print(p3.name! , p3.age)
1 0
- swift 自定义类的构造函数,有参构造、无参构造
- 构造函数的作用,无参构造和有参构造
- 有参构造函数和无参构造函数
- Spring注入与无参构造函数自定义构造函数
- Spring注入与无参构造函数自定义构造函数
- Swift自定义类的构造函数
- 有参构造跟无参构造
- 无参构造函数
- java无参构造函数与有参构造函数的应用
- 有参构造函数和无参构造函数的区别
- dubbo的函数返回类,含有有参构造函数时,必须写明一个无参构造函数
- 为什么要构造无参构造函数
- java无参构造函数的意义
- Class.forName java.lang.reflect.Constructor反射调用有参构造函数和无参构造函数的方法
- java有参构造方法和无参构造方法
- java有参构造方法和无参构造方法
- MyEclipse快捷键有参构造和无参构造
- 定义无参构造和有参构造方法
- 关于php的range新发现
- BESTCODER ROUND92 1001.Skip the Class
- JAVA程序员不可不留意的编码规范
- Android自定义控件
- 【九度OJ】题目1185:特殊排序 解题报告
- swift 自定义类的构造函数,有参构造、无参构造
- 约瑟夫环:递归算法
- 每天一个adb命令:screen 命令详解
- 亚信实习——渐入佳境
- vmware里的centos虚拟机无法上网(四)
- 学习IOC之简单实现
- 指令中的scope
- Phpcms创建和开发模块
- Docker与Kubernetes系列(七): Docker Swarm