您的位置:首页 > 其它

使用KVC的一个注意点

2016-03-25 21:35 274 查看
1.新建一个Person类

//
//  Person.swift

import UIKit

class Person: NSObject {

/*
如果定义属性的时候没有初始化,那么必须在后面写上一个?号
Swift要求,属性是必须有初始化值的
只要在构造方法中对属性初始化,那么就不用写?号
*/
var name:String?
/*
如果是定义一个『对象属性』那么后面可以写上?号
如果是定义一个『基本数据类型属性』,那么建议直接赋值为0
因为super.init()方法在分配内存存储空间的时候,如果发现属性是一个对象,并且是一个可选类型,会给这个属性分配存储空间;
但是如果是一个基本数据类型,并且是可选的,那么super.init()不会给该属性分配存储空间
*/
// var age:Int?
var age:Int = 0

init(dict:[String:NSObject]) {
// 注意点:Swift中如果想在构造方法中使用KVC给属性赋值
// 那么在使用KVC之前必须调用 super.init()
super.init()
setValuesForKeysWithDictionary(dict)
}
}


2.控制器使用

//
//  ViewController.swift

import UIKit

class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()

let p3 = Person(dict:["name":"zhangsan","age":998])
print("\(p3.name), \(p3.age)")
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: