使用KVC的一个注意点
2016-03-25 21:35
274 查看
1.新建一个Person类
2.控制器使用
// // 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)") } }
相关文章推荐
- MySQL具体解释(7)-----------MySQL线程池总结(一)
- 初探招聘会
- Android课程---课下练习(表格、线性和相对布局)
- 代码总结
- android之常用知识点(一)
- U-Boot的编译过程分析
- 学习 Object-C: 简史
- dwExStyle和dwStyle的说明(Delphi SDK窗口)
- ubuntu14.04 下安装有道词典
- WPF学习——依赖项属性(1)
- mybatis的学习
- 括号匹配问题
- POJ1679
- sin的泰勒展开
- IOS开发-OC学习-MD5加密
- poj 1962(并查集+带权更新)
- 游戏中有多个摄像机时,注意摄像机对游戏物体位置的影响
- 码农小汪-struts2学习5-表单的验证的两种方法
- ExtJs TabPanel右键功能插件Ext.ux.TabCloseMenu
- c++复习要点总结之七——运算符重载