- 博客(126)
- 资源 (4)
- 问答 (1)
- 收藏
- 关注
原创 16.5 Swift可选链的赋值操作
/** 16.5-可选链的赋值操作 */ class Person { var name ="" func whoami() ->String { print("My name is\(name
2016-12-23 16:54:11 402
原创 16.4 Swift可选链调用下标索引
/** 16.4-可选链调用下标索引 */ /** 可选值?属性 可选值?方法 如何调用下标方法呢? */
2016-12-23 16:41:35 258
原创 16.3 Swift可选链的返回值
/** 16.3-可选链的返回值 通过可选链来调用相应的属性和方法 这个属性的值 这个方法的返回值 通过可选链调用取得的返回值会被包装成一个可续类型数据。 可选链有可能失效返回nil,也有可能成功返回值也会包装成可选
2016-12-23 16:40:58 298
原创 16.2 Swift可选链
/** 16.2-可选链介绍 */ class Person { var name ="" func whoami() ->String { print("My name is\(name)")
2016-12-23 16:39:48 312
原创 16.1 Swift可选类型深入探讨
/** 16.1-可选类型深入探讨 可选链 Optional Chaining */ var opa:Int? /** 那么这个就是
2016-12-23 16:36:12 355
原创 15.9 Swift解决闭包引起的循环强引用问题
/** 15.9-解决闭包引起的循环强引用问题 */ var cr:CycleRef? = CycleRef.init() // 引用计数为1 // 我们知道延迟存储属性,第一次访问的时候才初始化。 cr!.closure()
2016-12-23 16:19:48 748
原创 15.8 Swift闭包属性引起的循环强引用问题
/** 15.8-闭包属性引起的循环强引用问题 所谓的循环强引用,是指两个对象相互强引用指向对方。谁都不撒手,造成这两个对象都不会被系统所释放,造成内存泄漏。 那么怎么解决它呢?将其中一个对象变成弱引用指向对方,或者说持有对方。 weak unowned 关键字来解决。
2016-12-23 16:17:50 587
原创 15.7 Swift全局引用
/** 全局引用 全局引用作用域是:定义的位置处开始,文件结尾处结束。 生命周期:跟当前程序的声明周期相同。 所以呢能写成局部的就用局部的,全局的必须等该Controller销毁时才销毁啊。 */ // 对于 viewDidLoad
2016-12-23 16:08:49 1472
原创 15.6 Swift局部引用
/** (6)局部引用和全局引用 1.作用域 2.生命周期 */ var ref:Int = Int.init(8) /** 定义一个变量或者常量,如果不是可选类型的话,一定要有初始值。
2016-12-23 16:08:05 309
原创 15.5 Swift隐式强引用
/** 15.5-隐式强引用 */ class Student { var name:String init(name:String) { self.name = name
2016-12-22 11:41:59 594
原创 15.4 Swift深入分析集合类型的拷贝操作
//结构体,值类型的赋值操作是深拷贝 struct Deep { var copy:Int = 0 } // 类,引用类型的赋值操作是浅拷贝 class Shallow { var c
2016-12-22 11:40:06 240
原创 15.3 Swift集合类的拷贝
/** 集合类的拷贝操作 */ var array:ArrayInt> = [1,2, 3] var array1 = array /** public struct Array
2016-12-22 11:39:23 323
原创 15.2 Swift字符串的拷贝
/** (2)字符串拷贝 */ var swiftStr:String = "Hello" var swiftStr1:String = swiftStr /** public st
2016-12-22 11:38:44 603
原创 15.1 Swift深浅拷贝
//结构体,值类型的赋值操作是深拷贝 struct Deep { var copy:Int = 0 } // 类,引用类型的赋值操作是浅拷贝 class Shallow { var c
2016-12-22 11:38:02 821
原创 14.7 Swift中unowned解决循环强引用
/** (7)unowned解决循环强引用 仍然使用官方的例子来给大家讲解 */ class Customer { let name:String // 可
2016-12-22 11:23:20 435
原创 14.6 Swift中weak解决循环强引用
/** (6)循环强引用 ARC不是万能的,它可以很好的解决内存过早释放的问题, 但是在某些场合下不能很好的解决内存泄漏的问题。 */ /** 循环强引用是造成内存泄漏的原因。接下来我们还是用代码来给大家讲解什么是循环强引用。
2016-12-22 11:21:54 1125
原创 14.5 Swift中unowned引用
class Ref { deinit { print("Ref deinit!") } func test() ->Void { print("test") }
2016-12-22 11:21:19 261
原创 14.4 Swift中weak引用 访问可选类型的时候,用隐式解包
/** 14.4-weak引用.mp4 */ /** (4)weak引用(弱引用) */ class Ref { deinit { print(
2016-12-22 11:20:40 368
原创 14.3 Swift内存管理模型
/** (3)Swift语言的内存管理分析 内存管理对象-引用类型的对象(class类型),结构体和枚举是指类型根本就不需要我们对其进行内存管理。 内存管理的原则:当没有任何引用指向某个对象的时候,系统会自动销毁该对象。 如何做到该原则:通过ARC技术。 */
2016-12-22 11:20:08 285
原创 14.2 Swift析构方法的自动继承
/** 14.2-析构方法的自动继承.mp4 父类的析构方法会被自动调用,不需要子类管理。 */ class SomeClass { deinit { print
2016-12-22 11:19:13 269
原创 14.1 Swift析构方法
/** Swift 内存管理 和 Objective-C一样都是基于ARC的内存管理。 (1)析构方法 对象的内存被回收前夕被隐式的调用的方法。主要执行一些额外的操作。 比如:关闭文件、断开网络、释
2016-12-22 11:15:43 305
原创 13.9 Swift必须构造方法
/** (9)必须构造器 比较新鲜的概念, 之所以说是比较新的概念呢,是因为这个是早期的版本中没有这样一个概念啊? 构造方法所属的类的后续子类必须也得实现这个构造方法。 */ /**
2016-12-22 11:11:28 270
原创 13.8 Swift构造方法的自动继承
/** 父类的构造方法默认是不会被子类自动继承的。 */ /** (8)13.8-构造方法的自动继承.mp4 a 如果子类中没有任何定义的构造方法,且子类中所有的存储属性都有默认缺省值,会自动继承父类中 所有的构造方法(包括便利构造方
2016-12-22 11:10:54 282
原创 13.7 Swift关于便利构造方法“重写”的讨论
/** 13.7-关于便利构造方法“重写”的讨论.mp4 重写成一个便利构造方法 Swift语言中便利构造方法不能重写。因为它是横向的 */ class Human { let
2016-12-22 11:07:43 328
原创 13.6 Swift重写指定构造方法
/** 13.6-重写指定构造方法.mp4 是指“子类中构造方法与父类中的构造方法的参数列表一模一样。” 重写父类中的指定构造方法加上关键字 override */ class Human { l
2016-12-22 11:07:02 574
原创 13.5 Swift构造方法的编译器安全性检查
/** 13.5-构造方法的编译器安全性检查.mp4 */ /** 我们在编写构造方法的时候,编译器会随时来检查我们编写的构造方法是否符合它的要求和规范。 a 首先应该将派生类引入的存储属性初始化,然后再向上代理父类的指定构造方法;
2016-12-22 11:06:11 274
原创 13.4 Swift派生类构造方法的两段式构造
/** 13.4-派生类构造方法的两段式构造 */ /** 两段式构造-构造过程可以划分为两个阶段 第一阶段,确保所有的存储属性都初始化完毕, 第二阶段,对父类中的存储属性做进一步的处理。 可以防止属性在被初始
2016-12-22 10:50:21 346
原创 13.3 Swift构造器之间的调用规则(构造器链)
/** 13.3-构造器之间的调用规则(构造器链).mp4 */ /** (3)构造器链-指定构造器和便利构造器之间的调用规则 a 指定构造器必须调用其直接基类的指定构造器,不可以调用其直接基类的便利构造器。
2016-12-22 10:48:25 315
原创 13.2 Swift派生类的构造方法
/** 13.2-派生类的构造方法.mp4 */ class AB { var a:Int var b:Int // 指
2016-12-22 10:47:38 361
原创 13.1 Swift指定构造方法和便利构造方法解析
/** 13.1-指定构造方法和便利构造方法解析.mp4 (Designated Initializers and Convenience Initializers) 都是与类相关的 */ class AB {
2016-12-21 15:34:23 400
原创 12.8 Swift闭包或函数存储属性缺省值
/** (8)闭包或函数存储属性缺省值 */ class TestClass { // x是存储属性 var x:Int = 10 // y是计算属性
2016-12-21 11:22:36 449
原创 12.7 Swift值类型的构造方法之间的调用
/** 结构体 枚举 值类型的构造方法之间的调用 值类型的构造器代理 构造方法可以调用其他构造方法来完成实例的构造,称之为构造器代理。 好处:减少构造方法之间的代码重复。 */ s
2016-12-21 11:21:46 222
原创 12.6 Swift结构体的构造方法
/** 结构体的构造方法 结构体的构造方法和类的构造方法还是有区别的 */ struct Rect { var width:Double var height:Double
2016-12-21 11:21:11 284
原创 12.5 Swift可选属性与构造方法
/** 可选属性与构造方法 */ class CreditCard { let cardNumber:UInt32 init(number:UInt32) { self
2016-12-21 11:18:07 309
原创 12.4 Swift常量存储属性与构造方法
/** 常量存储属性与构造方法 常量存储属性只能在构造方法中被修改,其他任何时候都不可以修改 */ class Human { let name:String var age:Int
2016-12-21 11:17:38 217
原创 12.3 Swift带有参数的构造方法
/** 带有参数的构造方法 */ class MyPoint { // 让这两个没有初始值 var x:Int var y:Int
2016-12-21 11:14:16 483
原创 12.2 Swift带有缺省值的隐式构造方法
/** (2)带有缺省值的隐式构造方法 构造一个对象之后,要求对象中的所有非lazy存储属性必须有初始值。 */ class MyPoint { var x:Int var y:Int = 0
2016-12-21 11:07:47 557
原创 12.1 Swift构造方法初印象
/** 构造方法初步 构造方法在什么情况下才使用? 当我们构造一个对象的时候才需要构造方法。 构造方法的主要作用:实例对象的内容的初始化。 Swift要求类或者结构体中的存储属性在对象构造完毕后有初始值。
2016-12-21 11:07:00 191
原创 11.7 Swift用final关键字来防止重写
/** 用final关键字来防止重写 final,最后的,最终的;决定性的;不可更改的 final 修饰类的话,表示这个类不可以被继承。 如果修饰属性或者方法,表示相应的属性或者方法不能被重写。 */
2016-12-21 11:02:08 235
求iOS计算瞬时心率的方法,有思路也行,万分感谢!
2014-08-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人