Swift基础篇——构造函数
来源:互联网 发布:qq采集软件 编辑:程序博客网 时间:2024/05/22 11:34
构造函数
import Foundation/** Swift中要求在创建一个类时必须给这个类中所有的属性进行初始化 如果不能在创建对象时给这个类中所有的属性进行初始化, 那么这些属性必须是可选的 如果已经在构造方法中对所有的属性进行了初始化, 那么这些属性就可以不是可选类型 在给某一个类指定属性的数据类型时, 如果该属性是对象类型, 那么可以指定为可选类型 如果该属性不是对象类型而是基本数据类型, 那么建议直接赋值为0*/class Student: NSObject { // 注意:如果属性是基本数据类型, 并且是可选类型, 系统不会自动分配存储空间 var name: String? var score: Double = 0 // 重写构造函数 override init() { // 注意: 在构造方法中必须先初始化本类再初始化父类 name = "那些年我们一起走过的青春" score = 100 } // 自定义构造方法 init(name: String, score: Double) { self.name = name self.score = score// 以下这一句代码, 能不写就不写// super.init() } // 使用KVC对象转模型 init(dict: [String: AnyObject]) { // 注意:Swift中如果想在构造方法中使用KVC转换模型, 必须先调用 super.init() // 调用 super.init()的目的主要是为了给对象分配存储空间 super.init() setValuesForKeysWithDictionary(dict) } // Swift中打印对象会调用下面这个属性 override var description: String{// return "name = \(name), score = \(score)" let property = ["name", "score"] let dict = dictionaryWithValuesForKeys(property) return "\(dict)" }}
测试类
import UIKitclass ViewController: UIViewController { override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { // 注意: Swift开发中一般情况下不用导入头像文件, 因为只要所有的文件都在一个命名空间中那么就可以直接使用 // 默认情况下一个项目的命名空间就是项目名称, 而在同一个项目下的所有文件都在同一个命名空间中// let stu = Student(name: "Swift", score: 97)// let stu = Student() // 如果自定义一个类, 并且没有重写构造方法, 那么系统会提供默认的构造方法 // 如果自定义一个类, 并且自定义了构造方法, 那么系统不会提供默认的构造方法 let stu = Student(dict: ["name": "longshao","score":"998"]) print(stu.name) print(stu.score) print(stu.description) }}
0 0
- Swift基础篇——构造函数
- Swift基础3.1——构造函数
- Swift基础 构造函数
- Swift基础3.2——重载构造函数
- Swift基础3.3——便利构造函数
- Swift基础篇——函数
- Swift基础篇——内外函数
- Swift——类的构造函数
- Swift基础2.1——函数
- Snail—Swift基础学习之函数
- java基础篇(十二)——构造函数和子类构造函数
- swift 构造函数
- Swift构造函数
- JAVA_SE基础——29.构造函数
- Swift 3.构造函数-重载构造函数
- swift 构造函数 与便利构造函数
- Swift之便利构造函数
- swift 构造函数(重载)
- Swift基础篇——字典
- Swift基础篇——字符串
- Swift基础篇——函数
- 不改源码的方式实现osgearth当中placenode的中文支持
- 每天学点儿树莓派(三)——使用IDE提高效率
- Swift基础篇——构造函数
- Swift基础篇——setter和getter的使用
- LeetCode OJ 123 Best Time to Buy and Sell Stock III
- Swift基础篇——闭包
- Unity中HideInInspector和SerializeField
- Swift基础篇——懒加载
- Eclipse 常用快捷键
- Swift基础篇——单例
- Ember.js 入门指南——查询记录