随笔分类 - Swift
摘要:这个功能的重点作用应该是在计算上。 对于一般的属性,要么直接存一个,要么直接读一个,计算属性则可以根据所设置内容,进行一些修改或计算之类的, 比如: import UIKit class sample { var no1 = 0.0, no2 = 0.0 var length = 300.0, br
阅读全文
摘要:协议: 1.Swift协议用于定义多个类型应该遵守的规范 2.协议定义了一种规范, 不提供任何实现 3.协议统一了属性名, 方法, 下标, 但是协议并不提供任何实现 4.语法格式: [修饰符] protocol 协议名: 父协议1, 父协议2, ... { // 协议内容 } 修饰符:可以省略, 也
阅读全文
摘要:import Foundation /* 扩展 1.使用扩展添加属性, 方法, 可变方法, 构造器, 下标, 嵌套类型 2.可以使一个已有类型符合一个或者多个协议 3.扩展与OC的Category类似 4.扩展并不是派生子类, 因此不支持重写 */ /* [修饰符] extension 已有类型 {
阅读全文
摘要:import Foundation /* Swift中子类必须包含的构造器 1.Swift允许在父类构造器前添加required关键字, 用于声明所有子类必须包含该required构造器 (如果没有声明, 子类中默认会自动包含), 至于要怎么实现父类中required构造器, 没有特殊要求 可以通过
阅读全文
摘要:import Foundation /* 可能失败构造器的传播(调用) 1.可能失败的构造器可以调用同一个类中的普通构造器 2.普通构造器不能调用同一个类中的可能失败构造器 3.结构体中, 普通构造器却可以调用同一个结构体中可能失败的构造器 可能失败构造器的重写 1.子类可以用可能失败的构造器或者普
阅读全文
摘要:import Foundation /* 构造器的继承: Swift的子类不会自动继承父类的构造器, 若继承, 则满足如下规则: 1.如果子类没有提供任何指定构造器, 那么它将自动继承父类的所有指定构造器 2.如果子类实现了父类所有的指定构造器, 无论如何实现的, 都将自动继承父类的所有便利构造器
阅读全文
摘要:import Foundation /* 类的构造需要两个阶段: 第一阶段: 1.程序调用子类的某个构造器 2.为实例分配内存, 此时实例的内存还没有被初始化 3.指定构造器确保子类定义的所有实例存储属性都已被赋初值 4.指定构造器将调用父类的构造器, 完成父类定义的实例存储属性的初始化 5.沿着调
阅读全文
摘要:import UIKit // 1.一个类中至少有一个指定构造器, 其必须负责初始化类中所有的实例存储属性 // 2.便利构造器属于次要的, 辅助性的构造器 // 3.类中可以不定义便利构造器, 便利构造器必须调用同一个类中的其他构造器完成初始化 // 4.便利构造器的语法格式 convenienc
阅读全文
摘要:github:https://github.com/CharlinFeng/Reflect 直接拖拽Reflect文件夹到您的项目中即可,无任何第三方依赖!文件夹结构说明:.Coding 归档相关.Reflect 反射核心包.Dict2Model 字典转模型.Model2Dict 模型转字典 这里使
阅读全文
摘要:import UIKit // 值类型的构造器重载 struct ConstructorOverload { var name: String! var amount: Int! // 提供无参数的构造器 init(){ } // 提供带两个参数的构造器来完成构造过程 init(name: Stri
阅读全文
摘要://: Playground - noun: a place where people can play import Foundation /* 可选链: 1.可选链访问方式:将强制解析的感叹号换成?, 在隐式解析的后面也添加? 2.可选链会自动判断程序访问的关联实例是否为nil, 即使为nil,
阅读全文
摘要:类,结构和枚举类型都可以通过定义下标来访问一组或者一个序列中的成员元素。通过下标索引就可以方便地检索和设置相应的值,而不需要其他的额外操作。 比如你可以通过someArray[index]来访问数组中的元素,或者someDictionary[key]来对字典进行索引。 你可以为一个类型定义多个下标,
阅读全文
摘要:// 属性观察者, 用于监听属性变化, 在属性变化的时候调用 class Person { var name: String = "" { // 也可以写成willSet{}, 系统默认会传入一个名为newValue的参数 willSet(newValue) { print("name这个属性将被修
阅读全文
摘要:import Foundation /* 什么叫继承: 可以简单理解为一个类可以从它的父类或者基类中直接拿属性或者方法去使用 冒号":"表示两者之间的继承关系 */ class Person { /*- 属性 -*/ var name: String = "" // 储存属性如果没有在创建的时候赋值
阅读全文
摘要:import Foundation /* 1.class表示类的关键字 2.class后面表示类名 3.类名后面的大括号内表示类的内部 */ /* 1.属性封装了set和get方法 2.方法里面封装了具体的代码块 3.类封装了属性和方法 4.一个项目封装了多个类 */ class Person {
阅读全文
摘要:swift 和 OC 的桥接 //: Playground - noun: a place where people can play import UIKit var PI = "3.14" // Double(PI) // 将swift的字符串转换为OC的字符串, 调用OC中的函数 (PI as
阅读全文
摘要:更简洁的if-let import UIKit func attack(name: String, enemyName: String, weapon: String) { print("\(name)使用了\(weapon)攻击了\(enemyName)") } attack("Rinpe", e
阅读全文
摘要://: Playground - noun: a place where people can play import UIKit /* 这里的枚举没有给它的成员默认值, 而是给它绑定了一个类型, 之后可以在程序中对这些成员进行赋值 */ enum Barcode { case UPCA(Int,
阅读全文
摘要://: Playground - noun: a place where people can play import UIKit enum Month: Int { // 这么定义, 后面的Feb, Mar会自动赋值为2和3.. case Jan = 1, Feb, Mar, Apr, May,
阅读全文
摘要://: Playground - noun: a place where people can play import UIKit // 创建一个枚举类型就相当于创建了一个新的数据类型, 所以首字母应该大写 enum GameEnding { case win case lose case draw
阅读全文

浙公网安备 33010602011771号