Swift
文章平均质量分 55
longdaisfgr923943rre
long long ago...
展开
-
16.5 Swift可选链的赋值操作
/** 16.5-可选链的赋值操作 */ class Person { var name ="" func whoami() ->String { print("My name is\(name原创 2016-12-23 16:54:11 · 430 阅读 · 0 评论 -
16.2 Swift可选链
/** 16.2-可选链介绍 */ class Person { var name ="" func whoami() ->String { print("My name is\(name)")原创 2016-12-23 16:39:48 · 326 阅读 · 0 评论 -
16.3 Swift可选链的返回值
/** 16.3-可选链的返回值 通过可选链来调用相应的属性和方法 这个属性的值 这个方法的返回值 通过可选链调用取得的返回值会被包装成一个可续类型数据。 可选链有可能失效返回nil,也有可能成功返回值也会包装成可选原创 2016-12-23 16:40:58 · 312 阅读 · 0 评论 -
16.4 Swift可选链调用下标索引
/** 16.4-可选链调用下标索引 */ /** 可选值?属性 可选值?方法 如何调用下标方法呢? */原创 2016-12-23 16:41:35 · 271 阅读 · 0 评论 -
16.1 Swift可选类型深入探讨
/** 16.1-可选类型深入探讨 可选链 Optional Chaining */ var opa:Int? /** 那么这个就是原创 2016-12-23 16:36:12 · 367 阅读 · 0 评论 -
15.9 Swift解决闭包引起的循环强引用问题
/** 15.9-解决闭包引起的循环强引用问题 */ var cr:CycleRef? = CycleRef.init() // 引用计数为1 // 我们知道延迟存储属性,第一次访问的时候才初始化。 cr!.closure()原创 2016-12-23 16:19:48 · 757 阅读 · 0 评论 -
15.8 Swift闭包属性引起的循环强引用问题
/** 15.8-闭包属性引起的循环强引用问题 所谓的循环强引用,是指两个对象相互强引用指向对方。谁都不撒手,造成这两个对象都不会被系统所释放,造成内存泄漏。 那么怎么解决它呢?将其中一个对象变成弱引用指向对方,或者说持有对方。 weak unowned 关键字来解决。原创 2016-12-23 16:17:50 · 600 阅读 · 0 评论 -
15.7 Swift全局引用
/** 全局引用 全局引用作用域是:定义的位置处开始,文件结尾处结束。 生命周期:跟当前程序的声明周期相同。 所以呢能写成局部的就用局部的,全局的必须等该Controller销毁时才销毁啊。 */ // 对于 viewDidLoad原创 2016-12-23 16:08:49 · 1502 阅读 · 0 评论 -
15.6 Swift局部引用
/** (6)局部引用和全局引用 1.作用域 2.生命周期 */ var ref:Int = Int.init(8) /** 定义一个变量或者常量,如果不是可选类型的话,一定要有初始值。原创 2016-12-23 16:08:05 · 323 阅读 · 0 评论 -
15.5 Swift隐式强引用
/** 15.5-隐式强引用 */ class Student { var name:String init(name:String) { self.name = name原创 2016-12-22 11:41:59 · 631 阅读 · 0 评论 -
15.4 Swift深入分析集合类型的拷贝操作
//结构体,值类型的赋值操作是深拷贝 struct Deep { var copy:Int = 0 } // 类,引用类型的赋值操作是浅拷贝 class Shallow { var c原创 2016-12-22 11:40:06 · 250 阅读 · 0 评论 -
15.3 Swift集合类的拷贝
/** 集合类的拷贝操作 */ var array:ArrayInt> = [1,2, 3] var array1 = array /** public struct Array原创 2016-12-22 11:39:23 · 342 阅读 · 0 评论 -
15.2 Swift字符串的拷贝
/** (2)字符串拷贝 */ var swiftStr:String = "Hello" var swiftStr1:String = swiftStr /** public st原创 2016-12-22 11:38:44 · 637 阅读 · 0 评论 -
15.1 Swift深浅拷贝
//结构体,值类型的赋值操作是深拷贝 struct Deep { var copy:Int = 0 } // 类,引用类型的赋值操作是浅拷贝 class Shallow { var c原创 2016-12-22 11:38:02 · 859 阅读 · 0 评论 -
14.7 Swift中unowned解决循环强引用
/** (7)unowned解决循环强引用 仍然使用官方的例子来给大家讲解 */ class Customer { let name:String // 可原创 2016-12-22 11:23:20 · 444 阅读 · 0 评论 -
14.6 Swift中weak解决循环强引用
/** (6)循环强引用 ARC不是万能的,它可以很好的解决内存过早释放的问题, 但是在某些场合下不能很好的解决内存泄漏的问题。 */ /** 循环强引用是造成内存泄漏的原因。接下来我们还是用代码来给大家讲解什么是循环强引用。原创 2016-12-22 11:21:54 · 1171 阅读 · 0 评论 -
14.3 Swift内存管理模型
/** (3)Swift语言的内存管理分析 内存管理对象-引用类型的对象(class类型),结构体和枚举是指类型根本就不需要我们对其进行内存管理。 内存管理的原则:当没有任何引用指向某个对象的时候,系统会自动销毁该对象。 如何做到该原则:通过ARC技术。 */原创 2016-12-22 11:20:08 · 316 阅读 · 0 评论 -
12.7 Swift值类型的构造方法之间的调用
/** 结构体 枚举 值类型的构造方法之间的调用 值类型的构造器代理 构造方法可以调用其他构造方法来完成实例的构造,称之为构造器代理。 好处:减少构造方法之间的代码重复。 */ s原创 2016-12-21 11:21:46 · 234 阅读 · 0 评论 -
12.8 Swift闭包或函数存储属性缺省值
/** (8)闭包或函数存储属性缺省值 */ class TestClass { // x是存储属性 var x:Int = 10 // y是计算属性原创 2016-12-21 11:22:36 · 463 阅读 · 0 评论 -
13.1 Swift指定构造方法和便利构造方法解析
/** 13.1-指定构造方法和便利构造方法解析.mp4 (Designated Initializers and Convenience Initializers) 都是与类相关的 */ class AB {原创 2016-12-21 15:34:23 · 410 阅读 · 0 评论 -
13.2 Swift派生类的构造方法
/** 13.2-派生类的构造方法.mp4 */ class AB { var a:Int var b:Int // 指原创 2016-12-22 10:47:38 · 374 阅读 · 0 评论 -
13.3 Swift构造器之间的调用规则(构造器链)
/** 13.3-构造器之间的调用规则(构造器链).mp4 */ /** (3)构造器链-指定构造器和便利构造器之间的调用规则 a 指定构造器必须调用其直接基类的指定构造器,不可以调用其直接基类的便利构造器。原创 2016-12-22 10:48:25 · 339 阅读 · 0 评论 -
13.4 Swift派生类构造方法的两段式构造
/** 13.4-派生类构造方法的两段式构造 */ /** 两段式构造-构造过程可以划分为两个阶段 第一阶段,确保所有的存储属性都初始化完毕, 第二阶段,对父类中的存储属性做进一步的处理。 可以防止属性在被初始原创 2016-12-22 10:50:21 · 360 阅读 · 0 评论 -
13.5 Swift构造方法的编译器安全性检查
/** 13.5-构造方法的编译器安全性检查.mp4 */ /** 我们在编写构造方法的时候,编译器会随时来检查我们编写的构造方法是否符合它的要求和规范。 a 首先应该将派生类引入的存储属性初始化,然后再向上代理父类的指定构造方法;原创 2016-12-22 11:06:11 · 285 阅读 · 0 评论 -
13.6 Swift重写指定构造方法
/** 13.6-重写指定构造方法.mp4 是指“子类中构造方法与父类中的构造方法的参数列表一模一样。” 重写父类中的指定构造方法加上关键字 override */ class Human { l原创 2016-12-22 11:07:02 · 585 阅读 · 0 评论 -
13.7 Swift关于便利构造方法“重写”的讨论
/** 13.7-关于便利构造方法“重写”的讨论.mp4 重写成一个便利构造方法 Swift语言中便利构造方法不能重写。因为它是横向的 */ class Human { let原创 2016-12-22 11:07:43 · 340 阅读 · 0 评论 -
13.8 Swift构造方法的自动继承
/** 父类的构造方法默认是不会被子类自动继承的。 */ /** (8)13.8-构造方法的自动继承.mp4 a 如果子类中没有任何定义的构造方法,且子类中所有的存储属性都有默认缺省值,会自动继承父类中 所有的构造方法(包括便利构造方原创 2016-12-22 11:10:54 · 295 阅读 · 0 评论 -
13.9 Swift必须构造方法
/** (9)必须构造器 比较新鲜的概念, 之所以说是比较新的概念呢,是因为这个是早期的版本中没有这样一个概念啊? 构造方法所属的类的后续子类必须也得实现这个构造方法。 */ /**原创 2016-12-22 11:11:28 · 280 阅读 · 0 评论 -
14.1 Swift析构方法
/** Swift 内存管理 和 Objective-C一样都是基于ARC的内存管理。 (1)析构方法 对象的内存被回收前夕被隐式的调用的方法。主要执行一些额外的操作。 比如:关闭文件、断开网络、释原创 2016-12-22 11:15:43 · 319 阅读 · 0 评论 -
14.2 Swift析构方法的自动继承
/** 14.2-析构方法的自动继承.mp4 父类的析构方法会被自动调用,不需要子类管理。 */ class SomeClass { deinit { print原创 2016-12-22 11:19:13 · 276 阅读 · 0 评论 -
12.6 Swift结构体的构造方法
/** 结构体的构造方法 结构体的构造方法和类的构造方法还是有区别的 */ struct Rect { var width:Double var height:Double原创 2016-12-21 11:21:11 · 306 阅读 · 0 评论 -
12.5 Swift可选属性与构造方法
/** 可选属性与构造方法 */ class CreditCard { let cardNumber:UInt32 init(number:UInt32) { self原创 2016-12-21 11:18:07 · 320 阅读 · 0 评论 -
12.4 Swift常量存储属性与构造方法
/** 常量存储属性与构造方法 常量存储属性只能在构造方法中被修改,其他任何时候都不可以修改 */ class Human { let name:String var age:Int原创 2016-12-21 11:17:38 · 227 阅读 · 0 评论 -
12.3 Swift带有参数的构造方法
/** 带有参数的构造方法 */ class MyPoint { // 让这两个没有初始值 var x:Int var y:Int原创 2016-12-21 11:14:16 · 504 阅读 · 0 评论 -
12.2 Swift带有缺省值的隐式构造方法
/** (2)带有缺省值的隐式构造方法 构造一个对象之后,要求对象中的所有非lazy存储属性必须有初始值。 */ class MyPoint { var x:Int var y:Int = 0原创 2016-12-21 11:07:47 · 570 阅读 · 0 评论 -
11.7 Swift用final关键字来防止重写
/** 用final关键字来防止重写 final,最后的,最终的;决定性的;不可更改的 final 修饰类的话,表示这个类不可以被继承。 如果修饰属性或者方法,表示相应的属性或者方法不能被重写。 */原创 2016-12-21 11:02:08 · 250 阅读 · 0 评论 -
11.6 Swift重写属性观察器
/** 重写属性观察器 1.只能给非lazy属性的变量存储属性设定属性观察器,不能给计算属性设定属性观察器。 属性观察器的限制:(1)不可以给只读的存储/计算属性,在子类中设定属性观察器, (因为只读,不会改变嘛) // 必原创 2016-12-21 10:59:58 · 677 阅读 · 0 评论 -
11.5 Swift重写属性时的限制
/** 属性重写的时候都有哪些限制? 1.属性重写时,只有set方法,没有get方法是否可以, 不可以的,我们马上可以看到,set和 get都必须重写; 2.只读的计算属性是否在重写的时候变成读写计算属性(权利变大); 可以,也就是可以升权。原创 2016-12-21 10:59:11 · 483 阅读 · 0 评论 -
11.4 Swift重写属性
/** 上一节课研究了如何重写方法, 这节课研究如何重写属性。 (4)重写属性 */ class Father { var storeProperty:Int = 0// 存储属性 var原创 2016-12-21 10:58:34 · 1153 阅读 · 0 评论 -
11.3 Swift重写方法
/** 重写方法 Swift中可以重写父类方法,也可以重写父类属性 */ class Human { var name:String = "" var id:Int = 0 func原创 2016-12-21 10:58:01 · 669 阅读 · 0 评论