swift kvc赋值

Posted on 2018-07-25 23:01  向往远方  阅读(248)  评论(0)    收藏  举报

1定义模型属性的时候,如果是对象,通常都是可选的(在需要的时候创建,避免写构造函数,简化代码)

2如果是基本数据类型,不能设置成可选的(运行时获取不到属性),而且要设置初始值,否则KVC会崩溃

3使用KVC方法前,需要先调用super.init(),保证对象实例化完成

4必须在类的前面添加@objcMembers(或者在每一个属性前面添加@objc),否则KVC会crash

5private修饰的成员属性,不能使用KVC赋值(会出现奔溃,运行时获取不到属性)

 

import UIKit

 

@objcMembers class Person: NSObject {

    var name: String?

    //基本数据类型必须是必选的,而且需要设置默认值

    var age: Int = 0

    

 

    init(dict: [String : AnyObject]) {

        super.init()

        setValuesForKeys(dict)

    }

 

}

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3