摘要: 可选类型: 可选类型的本质其实就是一个枚举 None 没有值 Some 有值 格式: Optional<类型> 或 在类型后面加上?号 由于可选类型在Swift中随处可见, 所以系统做了一个语法糖, 在类型后面加上? var opa: Optional<Int> var opb: Int? var 阅读全文
posted @ 2016-04-11 15:18 ChunFuYang 阅读(289) 评论(0) 推荐(0)
摘要: Swift内存管理: 管理引用类型的内存, 不会管理值类型, 值类型不需要管理 内存管理原则: 当没有任何强引用指向对象, 系统会自动销毁对象 (默认情况下所有的引用都是强引用) 如果做到该原则: ARC class Person { var name:String init(name:String 阅读全文
posted @ 2016-04-11 15:15 ChunFuYang 阅读(229) 评论(0) 推荐(0)
摘要: 析构方法对象的内存被回收前夕被隐式调用的方法, 对应OC的dealloc方法 主要执行一些额外操作, 例如释放一些持有资源, 关闭文件, 断开网络等 class FileHandler{ var fd: Int32? 文件描述符 指定构造器 init(path:String){ 需要打开的文件路径, 阅读全文
posted @ 2016-04-11 15:13 ChunFuYang 阅读(207) 评论(0) 推荐(0)
摘要: 构造方法 作用: 对实例对象的内容进行初始化 Swift要求类或者结构体中的存储属性(非lazy的)在对象构造完毕后要有初始化值语法: init(参数列表){ 初始化代码 } 注意: 1.在Swift中类/结构体/枚举都需要构造方法 2.构造方法的作用仅仅是用于初始化属性, 而不是分配内容, 分配内 阅读全文
posted @ 2016-04-11 15:12 ChunFuYang 阅读(338) 评论(0) 推荐(0)
摘要: 指定构造与便利构造方法 class Person { var name:String var age:Int 指定构造方法都是以init开头的 init(name:String, age:Int) { print("init") self.name = name self.age = age } 如 阅读全文
posted @ 2016-04-11 15:06 ChunFuYang 阅读(390) 评论(0) 推荐(0)
摘要: 继承语法继承是面向对象最显著的一个特性, 继承是从已经有的类中派生出新的类新的类能够继承已有类的属性和方法, 并能扩展新的能力术语: 基类(父类, 超类), 派生类(子类, 继承类)语法: class 子类: 父类{ } 继承优点: 代码重用 继承缺点: 增加程序耦合度, 父类改变会影响子类 注意: 阅读全文
posted @ 2016-04-11 14:59 ChunFuYang 阅读(3010) 评论(0) 推荐(0)
摘要: subscripts(下标): 访问对象中数据的快捷方式 所谓下标脚本语法就是能够通过, 实例[索引值]来访问实例中的数据 类似于以前我们访问数字和字典, 其实Swift中的数组和字典就是一个结构体 struct Student { var name:String = "qbs" var math: 阅读全文
posted @ 2016-04-11 14:57 ChunFuYang 阅读(251) 评论(0) 推荐(0)
摘要: 方法 隶属于每一个类或结构体的函数称之为方法:方法分为类方法和实例方法, 对应OC中的+ - 方法 实例方法:实例方法一定是通过对象来调用的, 实例方法隶属于某一个类 class Person { var _name:String = "qbs" var _age:Int = 30 实例方法一定是通 阅读全文
posted @ 2016-04-11 14:56 ChunFuYang 阅读(681) 评论(1) 推荐(0)
摘要: 存储属性 Swift中的存储属性就是以前学习OC中的普通属性 在结构体或者类中定义的属性, 默认就是存储属性 struct Person { var name: String var age: Int } var p:Person = Person(name: "qbs", age: 30) p.n 阅读全文
posted @ 2016-04-11 14:52 ChunFuYang 阅读(408) 评论(0) 推荐(0)
摘要: 类的基本定义 Swift中的结构体和类非常相似, 但是又有不同之处类是具有相同属性和方法的抽象格式: class 类名称 { 类的属性和方法 } class Rect { var width:Double = 0.0 var height:Double = 0.0 func show() -> Vo 阅读全文
posted @ 2016-04-11 14:50 ChunFuYang 阅读(171) 评论(0) 推荐(0)
摘要: 结构体: 结构体是用于封装不同或相同类型的数据的 Swift中的结构体是一类类型, 可以定义属性和方法(甚至构造方法和析构方法等) 格式: struct 结构体名称 { 结构体属性和方法 } struct Rect { var width:Double = 0.0 var height:Double 阅读全文
posted @ 2016-04-11 14:49 ChunFuYang 阅读(426) 评论(0) 推荐(0)
摘要: Swift枚举: Swift中的枚举比OC中的枚举强大, 因为Swift中的枚举是一等类型, 它可以像类和结构体一样增加属性和方法 格式: enum Method{ case 枚举值 } enum Method{ case Add case Sub case Mul case Div 可以连在一起写 阅读全文
posted @ 2016-04-11 14:48 ChunFuYang 阅读(868) 评论(0) 推荐(0)
摘要: 闭包:函数是闭包的一种类似于OC语言的block闭包表达式(匿名函数) -- 能够捕获上下文中的值 语法: in关键字的目的是便于区分返回值和执行语句闭包表达式的类型和函数的类型一样, 是参数加上返回值, 也就是in之前的部分 { (参数) -> 返回值类型 in 执行语句 } 完整写法 let s 阅读全文
posted @ 2016-04-11 14:44 ChunFuYang 阅读(788) 评论(0) 推荐(0)
摘要: 函数类型:类似于C语言的指向函数的指针类似于OC语言的block 函数类型是由函数的参数类型和返回值类型组成的 这两个函数的类型是 (Int, Int) -> Int func sum(a: Int, b: Int) ->Int { return a + b; } func sub(a: Int, 阅读全文
posted @ 2016-04-11 14:43 ChunFuYang 阅读(182) 评论(0) 推荐(0)
摘要: 内部函数: 默认情况下的参数都是内部参数 外部函数: 如果有多个参数的情况, 调用者并不知道每个参数的含义, 只能通过查看头文件的形式理解参数的含义 那么能不能和OC一样让调用者直观的知道参数的含义呢? 使用外部参数 外部参数只能外部用, 函数内部不能使用, 函数内部只能使用内部参数 func di 阅读全文
posted @ 2016-04-11 14:42 ChunFuYang 阅读(535) 评论(0) 推荐(0)
摘要: 函数: 完成某个特定任务的代码块, 给代码起一个合适的名称称之为函数名称. 以后需要执行代码块只需要利用函数名称调用即可. 好比每个人都有一个名字, 叫名字就能找到对应的人 OC: 不带参数 - (void)say { NSLog(@"hello"); } 带有一个参数 - (void)sayWit 阅读全文
posted @ 2016-04-11 14:41 ChunFuYang 阅读(243) 评论(0) 推荐(0)
摘要: 格式: switch(需要匹配的值) case 匹配的值: 需要执行的语句 break; 可以穿透 可以不写default default位置可以随便放 在case中定义变量需要加大括号, 否则作用域混乱 不能判断对象类型 OC: char rank = 'A';switch (rank) { ca 阅读全文
posted @ 2016-04-11 14:37 ChunFuYang 阅读(295) 评论(0) 推荐(0)
摘要: break: 跳出循环, 无论循环保持条件是否还为真都不会再执行循环 continue: 跳出本次循环, 如果循环保持条件还为真还会继续执行循环 OC: NSArray *arr = @[@1,@3, @5, @7, @8];for (NSNumber *num in arr) { if ([num 阅读全文
posted @ 2016-04-11 14:30 ChunFuYang 阅读(344) 评论(0) 推荐(0)
摘要: OC: int sum = 0; for (int i = 0; i <= 10; i++) { sum = i++; } NSLog(@"%d", sum); 输出结果:10 int sum = 0;int i = 0;for (; i <= 10; i++) { sum = i++; } NSL 阅读全文
posted @ 2016-04-11 14:28 ChunFuYang 阅读(289) 评论(0) 推荐(0)
摘要: while循环 OC: 格式:while(循环保持条件){需要执行的语句} int i = 0; int sum = 0; while (i <= 10) { sum = i++; } NSLog(@"%d",sum); 输出结果:10 int i = 0; int sum = 0; while ( 阅读全文
posted @ 2016-04-11 14:26 ChunFuYang 阅读(460) 评论(0) 推荐(0)
摘要: if语句基本使用 OC: int age1 = 10; int age2 = 20; int max; max = age2; if (age1 > age2) { max = age1; } NSLog(@"%d", max); 输出结果:20 if (age1 > age2) { max = a 阅读全文
posted @ 2016-04-11 14:25 ChunFuYang 阅读(1136) 评论(0) 推荐(0)
摘要: 定义字典 OC: NSDictionary *dict =[NSDictionary dictionaryWithObject: @“qbs" forKey:@"name"]; NSLog(@"%@", dict); 输出结果: 2016-01-06 15:09:11.214 OCTest[3773 阅读全文
posted @ 2016-04-11 14:17 ChunFuYang 阅读(256) 评论(0) 推荐(0)
摘要: 获取长度 OC: NSArray *arr = @[@1, @2, @3]; NSLog(@"%tu", arr.count); 输出结果: 2016-04-01 01:19:54.874 test[12086:2209180] 3 swift: var arr = [1, 2, 3] print( 阅读全文
posted @ 2016-04-11 14:10 ChunFuYang 阅读(218) 评论(0) 推荐(0)
摘要: 数组的批量操作 OC: NSMutableArray *arr = [NSMutableArray arrayWithObjects:@1, @2, @3, nil]; NSRange range = NSMakeRange(0, 2); [arr replaceObjectsInRange:ran 阅读全文
posted @ 2016-04-11 14:10 ChunFuYang 阅读(179) 评论(0) 推荐(0)
摘要: 数组定义: OC: 有值数组 NSArray *arr0 = @[@1, @2, @3]; NSArray *arr1 = [NSArray arrayWithObjects:@1, @2, @3, nil]; NSLog(@"%@", arr1); 输出结果: 2016-04-01 01:04:4 阅读全文
posted @ 2016-04-11 14:09 ChunFuYang 阅读(139) 评论(0) 推荐(0)
摘要: 字符 OC当中的字符:char charValue = 'a'; swift当中的字符: var charValue1:Character = "a" Swift和OC字符不一样 1.Swift是用双引号 2.Swift中的字符类型和OC中的也不一样 OC中的字符占一个字节,因为它只包含ASCII表 阅读全文
posted @ 2016-04-11 14:08 ChunFuYang 阅读(284) 评论(0) 推荐(0)
摘要: 使用可选类型(optionals)来处理值可能缺失的情况。 C 和 Objective-C 中并没有可选类型这个概念。 最接近的是 Objective-C 中的一个特性, 一个方法要不返回一个对象要不返回nil,nil表示“缺少一个合法的对象” 可选值: optionals有两种状态: 1.有值 2 阅读全文
posted @ 2016-04-11 13:48 ChunFuYang 阅读(189) 评论(0) 推荐(0)
摘要: 什么是元组 在其它语言中很早就是有元组这个概念, 但是对于OC程序员来说这是一个新的概念 官方定义:元组(tuples)把多个值组合成一个复合值。 元组内的值可以是任意类型,并不要求是相同类型。 将多个相同或者不同类型的值用一个小括号括起来就是一个元组 定义元组 let student = ("jo 阅读全文
posted @ 2016-04-11 13:44 ChunFuYang 阅读(171) 评论(0) 推荐(0)
摘要: 算术运算符: + - * / % ++ -- 除了取模,其它和OC一样,包括优先级 var result = 10 + 10 result = 10 * 10 result = 10 - 10 result = 10 / 10 print(result) 注意:Swift是安全严格的编程语言, 会在 阅读全文
posted @ 2016-04-11 13:44 ChunFuYang 阅读(203) 评论(0) 推荐(0)
摘要: 基本数据类型 OC:整型 int intValue = 10;浮点型 double doubleValue = 10.10; float floatValue = 5.1;长 long短 short有符号 signed无符号 unsigned 各种类型的数据的取值范围在不同位的编译器下取值范围不同 阅读全文
posted @ 2016-04-11 13:43 ChunFuYang 阅读(290) 评论(0) 推荐(0)
摘要: 学习swift第一步打印Hello World print("Hello World") swift是不用加分号的 什么是常量? 什么是常量? 常量是在程序运行过程中不能改变值的量 什么时变量? 变量是可以在程序运行过程中不断变化的量 在swift当中常量和变量必须在使用前声明 用let来声明常量, 阅读全文
posted @ 2016-04-11 13:42 ChunFuYang 阅读(316) 评论(0) 推荐(0)