Swift4 基本语法
文章平均质量分 61
分享自己学习整理的 Swift笔记
CodeMonkeyyy
这个作者很懒,什么都没留下…
展开
-
swift - 尝试访问 Alamofire 中的错误代码
原文标签swifthttpalamofire我使用的是 Alamofire 4。当我使用时print(response.debugDescription)我在控制台中有这样的东西:[Request]: https://api2.website.com[Response]: nil[Data]: 0 bytes[Result]: FAILURE: Error Domain=NSURLErrorDomain Code=-1009 "The Internet con...转载 2021-07-07 15:02:47 · 996 阅读 · 0 评论 -
Swif- 访问控制
//可以给类型, 属性, 方法, 构造器, 下标添加访问控制.协议, 全局常量,变量, 函数也可以限制范围, 下文统称 entity //1. Modules and Source Files //Swift 的访问控制基于 modules 和 source file 的概念 //module 是一个代码分配单元, 可以被其它 mo...原创 2018-06-21 14:07:47 · 292 阅读 · 0 评论 -
Swift- 内存安全
//1. 访问内存冲突 //对同一块内存的读写同时进行 //2. 内存访问特征 //按冲突访问的语境, 内存访问有三个特征: 访问是否是读或写, 访问的中间过程, 内存正在被访问 //特别地, 当两个访问满足以下条件时, 冲突发生: //至少一个写 //访问内存的同一个...原创 2018-06-21 14:02:23 · 476 阅读 · 0 评论 -
Swift- 引用计数
//1. 类实例之间的 Strong Reference Cycles class Person { let name: String init(name: String) { self.name = name } var apartment: Apartment? de...原创 2018-06-21 13:59:47 · 333 阅读 · 0 评论 -
Swift- 泛型
//7//定义协议 Container, 声明一个相关类型 Itemprivate protocol Container { associatedtype Item mutating func append(_ item: Item) var count: Int { get } subscript(i: Int) -> Item { get }}/...原创 2018-06-21 13:58:32 · 492 阅读 · 0 评论 -
Swift- 延展
override func viewDidLoad() { super.viewDidLoad() //扩展(Extensions) //扩展可以给现有的Class, struct, enum 或者 protocol 类型增加新的功能, 包括没有源码的类型, 但是不能重写现有方法.类似于 OC 的category, 不同的是 ext...原创 2018-06-20 08:51:48 · 501 阅读 · 0 评论 -
Swift- 嵌套类型
struct BlackjackCard { // nested Suit enumeration enum Suit: Character { case spades = "♠", hearts = "♡", diamonds = "♢", clubs = "♣" } //...原创 2018-06-20 08:51:06 · 397 阅读 · 0 评论 -
Swift- 类型转换
override func viewDidLoad() { super.viewDidLoad() //类型转换运算符: is, as //可以用类型转换检查实例类型, 或者一个类型是否服从协议 class MediaItem { var name: String ...原创 2018-06-20 08:50:21 · 980 阅读 · 0 评论 -
Swift- 错误处理
override func viewDidLoad() { super.viewDidLoad() //1. 呈现和抛出错误 //在 Swift 中, 错误的呈现使用服从 Error协议的类型的值 //Swift 的 enum 适合用来封装一组相关的错误 enum VendingMachineError: Error...原创 2018-06-20 08:49:44 · 536 阅读 · 0 评论 -
Swift- 可选链
override func viewDidLoad() { super.viewDidLoad() //可选链 //可选链是访问或调用可选类型的属性, 方法, 下标的过程, 如果可选类型有值则调用成功, 否则返回 nil. //多个访问可以链接在一起, 其中一个访问失败,则整个链表失败. //1....原创 2018-06-20 08:49:09 · 346 阅读 · 0 评论 -
Swift- 析构
class Bank { //类型属性 static var coinsInBank = 10_000 //类型方法 static func distribute(coins numberOfCoinsRequested: Int) -> Int { let numberOfCoinsToVend...原创 2018-06-20 08:48:31 · 242 阅读 · 0 评论 -
Swift- 构造器
override func viewDidLoad() { super.viewDidLoad() //和 OC 的 init 方法不同,Swift 的初始化方法没有返回值,Swift 中 init 方法的作用是确保新的实例在使用之前被正确初始化 //1. 为存储属性设置初始值 //Class 和 ...原创 2018-06-20 08:47:13 · 650 阅读 · 0 评论 -
Swift- 继承
//Swift 中的 Class 可以继承父类的方法, 属性和其它特征.继承是 Class 区别于其它类型的一个主要特点 //1. 定义一个基类(Base Class) //没有父类的类称为基类 class Vehicle { var currentSpeed = 0.0 var de...原创 2018-06-20 08:41:16 · 507 阅读 · 0 评论 -
Swift- 下标(Subscripts)
//下标(Subscripts) //Class, struct, enum 都可以定义下标 //1. 下标语法 //下标语法和实例方法以及计算属性类似, 使用关键字 subscript, 可以指定参数和返回值. //不像实例方法, 下标可以是读写, 只读的, 类似于计算属性 class Person { ...原创 2018-06-20 08:40:34 · 273 阅读 · 0 评论 -
Swift- 方法
func methodGrammar() { //方法是和特定类型相关的函数, Swift 中 Class, struct, enum 都可以定义实例方法和类型方法 //Class 的方法可以继承, struct, enum 方法不可以继承 //struct, enum 是值类型, 属性默认不能修改, 要修改使用 mutating 关键字 ...原创 2018-06-20 08:39:20 · 327 阅读 · 0 评论 -
Swift- 属性
//存储属性存储常量或变量作为实例的一部分,计算属性计算并返回一个值 //存储属性只能用于 Class, struct, 计算属性可以用于 Class, struct, enum //存储属性可以是常量, 变量, 计算属性必须为变量 //1. 存储属性 struct FixedLengthRange { var fi...原创 2018-06-19 11:20:17 · 334 阅读 · 0 评论 -
Swift- 类和结构体
//Swift 中类和结构体的共同点: //1. 定义属性用于存储值 //2. 定义方法用于提供功能 //3. 定义下标用于访问值 //4. 定义构造器用于生成初始化值 //5. 通过扩展以增加默认实现的功能 //6. 符合协议以对某类提供标准功能 //Class 不同于 Struct...原创 2018-06-15 16:33:18 · 268 阅读 · 0 评论 -
Swift- 枚举
//1. 枚举语法 enum SomeEnumeration { // enumeration definition goes here } //eg1. enum CompassPoint { case North case South ...原创 2018-06-15 16:31:38 · 232 阅读 · 0 评论 -
Swift- 闭包
//闭包closures 类似于 OC的 block, 闭包可以捕获(capture)并且存储代码块中指向常量或变量的指针 //Global and nested functions 都是闭包的特例, 闭包有三种形式: //(1)Global functions 是有名字但是没有 capture 任何值的闭包 //(2)Nested functions 是...原创 2018-06-15 16:30:45 · 357 阅读 · 0 评论 -
Swift- 函数
//函数(Function) //函数表达形式: //func functionName(argumentLabel parameterName: type) -> return type { // 函数体 //} //argumentLabel 在函数调用时使用, 没有则默认 parameterN...原创 2018-06-15 16:26:51 · 321 阅读 · 0 评论 -
Swift- 控制流
//Swift 中的控制流语句有: while, if, guard, switch, for in, where break, continue //一. For in //用于遍历 Strings, Array, dictionary, Set, ranges等 //for in 循环中的局部变量如 name 是一个 let 值...原创 2018-06-15 16:25:28 · 217 阅读 · 0 评论 -
Swift- 集合
//一. 数组(Array) //同 OC 一样, array 是有序的, 其它两个无序 //可变 var, 不可变 let //Array(Dictionarie, Sett)类型写法: Array<存储数据类型> 或者 [存储数据类型] 一般使用第二种 //1. 数组初始化方法,创建一个空数组 var ...原创 2018-06-15 16:23:09 · 437 阅读 · 0 评论 -
Swift- 字符串和字符
//一. 字符串(Strings)和字符(Characters) //Swift中导入Foundation框架可以使用NSString 的方法 //1. 单行String, 用双引号 let someString = "Some string literal value" //2. 多行String, 三个双引号.每...原创 2018-06-15 16:21:42 · 789 阅读 · 0 评论 -
Swift- 运算符和 Range
//一. 基本运算符(Basic Operators) //数字运算符,逻辑运算符等大多数标准的C语言运算符,数字运算符可以检测运算结果避免溢出(超出存储类型允许的值的范围) //1. 一元运算符(Unary operators) //赋值运算符(Assignment Operator): = let...原创 2018-06-15 16:19:06 · 1446 阅读 · 0 评论 -
Swift- 元组和可选类型
一. 元组(Tuples)元组适合临时的相关的数据,如函数返回值,不适合复杂的数据结构,复杂的数据结构用类(class)或结构体(structure)定义//1. 元组的定义//元组包含多个值,每个值的类型可以不同let http404Error = (404, "Not Found")...原创 2018-06-15 16:08:40 · 245 阅读 · 0 评论 -
Swift- 常量和变量
Swift 是一门类型安全(Type Safety)的语言,编译时会检查进行类型检查(type checks),类型不匹配会报错,然而这并不意味着要声明每一个常量或变量的类型,编码器会通过所赋值的类型进行类型推断(Type inference),但是必须声明是常量还是变量一、常量、变量1.常量let,变量var声明时进行初始化,不需要写数据类型,会根据值的类型进行类型推断(Type infe...原创 2018-06-11 22:00:09 · 238 阅读 · 0 评论 -
Swift- 协议
OC 是面向对象的编程(OOP), Swift 则是面向协议的编程(POP), Swift标准库中有50多个复杂不一的协议. protocol是Swift语言的基础,语言的其他部分正是在这个基础上组织和建立起来的....原创 2018-06-11 22:04:24 · 433 阅读 · 0 评论