前端之家收集整理的这篇文章主要介绍了
Swift基础篇——构造函数,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
import Foundation
class Student: NSObject {
@H_502_7@// 注意:如果属性是基本数据类型,并且是可选类型,系统不会自动分配存储空间
var name: String?
var score: Double = 0
@H_502_7@// 重写构造函数
override init() {
@H_502_7@// 注意: 在构造方法中必须先初始化本类再初始化父类
name = "那些年我们一起走过的青春"
score = 100
}
@H_502_7@// 自定义构造方法
init(name: String,score: Double) {
self.name = name
.score = score
@H_502_7@// 以下这一句代码,能不写就不写
@H_502_7@// super.init()
}
@H_502_7@// 使用KVC对象转模型
init(dict: [String: AnyObject]) {
@H_502_7@// 注意:Swift中如果想在构造方法中使用KVC转换模型,必须先调用 super.init()
@H_502_7@// 调用 super.init()的目的主要是为了给对象分配存储空间
super.init()
setValuesForKeysWithDictionary(dict)
}
@H_502_7@// Swift中打印对象会调用下面这个属性
override var description: String{
@H_502_7@// return "name = \(name),score = \(score)"
let property = ["name","score"]
let dict = dictionaryWithValuesForKeys(property)
return "\(dict)"
}
}
测试类
import UIKit
class ViewController: UIViewController {
override func touchesBegan(touches: Set<UITouch>,withEvent event: UIEvent?) {
@H_502_7@// 注意: Swift开发中一般情况下不用导入头像文件,因为只要所有的文件都在一个命名空间中那么就可以直接使用
@H_502_7@// 默认情况下一个项目的命名空间就是项目名称,而在同一个项目下的所有文件都在同一个命名空间中
@H_502_7@// let stu = Student(name: "Swift",score: 97)
@H_502_7@// let stu = Student()
@H_502_7@// 如果自定义一个类,并且没有重写构造方法,那么系统会提供默认的构造方法
let stu = Student(dict: ["name": "longshao",0)">"score":"998"])
print(stu.name)
print(stu.score)
print(stu.description)
}
}
原文链接:https://www.f2er.com/swift/325663.html