/*//类的构造函数使用KVC条件1> 必须继承自NSObject2> 必须在构造函数中,先调用super.init(03> 调用setValueForKeys4> 如果字典中某一个key没有对应的属性,则需要重写setValueForKeys方法*/class LJPerson : NSObject{var name : String = ""var age : Int = 0var height : Double = 0init(name:String, age:Int) {self.name = nameself.age = age}//重写init方法init(dict : [String : Any]) {/*一般写法,假如此处有多个变量的话,要写好长好长的if let name = dict["name"] as? String {self.name = name}if let age = dict["age"] as? Int{self.age = age}if let height = dict["height"] as? Double{self.height = height}*/super.init()setValuesForKeys(dict)}//倘若不重写init方法的话,就不会出来init()override init() {}//重写这个方法,没有定义的key在里面也不会引起奔溃,如下面的key="phonum"override func setValue(_ value: Any?, forUndefinedKey key: String) {}
}let pw = LJPerson()
let pfg = LJPerson(name: "sww", age: 18)
let ps = LJPerson(dict: ["name":"swgt","age":18,"height":1.09,"phonum":"139"])print(ps.name,ps.age)
详细解决方案
swift 3.0 类的构造函数
热度:60 发布时间:2023-12-15 01:24:56.0
相关解决方案
- Swift iOS- 手势检测详解
- Swift 基本语法详解(2)
- Swift 基本语法详解(1)
- Swift 基本语法
- Day33:Swift 和 Object - C
- 知识点2:Swift REPL
- 约束动画如何实现?(swift)
- Swift 实现数组中的某个元素置顶
- swift textView出现越界的exception
- swift 关于背景图片的拉伸与平铺
- Exploring Swift Playgrounds 免积分下载
- Swift 中调用OC代理
- Swift 项目中可能用到的第三方框架
- Swift Programming Language--闭包
- swift 3.0 类的构造函数
- swift 3.0 字典简单学习
- swift 枚举类型
- swift 访问权限
- swift 方法参数名称省略
- swift 基础学习回顾(一)
- swift 数组和字典保存到文件中
- swift UISlider
- swift 拨打电话
- Swift 单例
- swift 基础学习一
- Swift 有哪些优秀的第三方库?
- swift 中的delegate 写法
- swift 3.0 数组赋值
- Swift 中异常抛出和四种异常处理
- Swift 3.0 API设计准则