摘要:一,可选链概念 可选链(Optional Chaining)是一种可以请求和调用属性、方法和子脚本的过程,用于请求或调用的目标可能为nil。 可选链返回两个值: 如果目标有值,调用就会成功,返回该值 如果目标为nil,调用将返回nil 多次请求或调用可以被链接成一个链,如果任意一个节点为nil将导致
阅读全文
摘要:CALayer介绍 CALayer在概念和UIView类似,也是一些被层级关系树管理的矩形块,可以包含图片、文字、背景色等内容。和UIView的最大不同是不能够处理与用户的交互。 每一个UIView都有个CALayer实例的图层属性,被称为backing layer(支持层),由视图负责创建并管理这
阅读全文
摘要:SnapKit简介 SnapKit是一个优秀的第三方自适应布局库,它可以让iOS、OS X应用更简单地实现自动布局(Auto Layout)。它的作者仍然是写Objective-C的第三方库Masonry的大牛 - @Robert Payne 下载链接 SnapKit SnapKit配置 在项目工程
阅读全文
摘要:1、What's Auto Layout Auto Layout是由苹果公司UIKit框架提供的一个用于动态计算UIView及其子类的大小和位置的库。 说到Auto Layout就不得不说Cassowary算法,因为Auto Layout是构建在Cassowary算法的基础之上的。1997年,Aut
阅读全文
摘要:一,iOS相关常用的动画 在iOS实际开发中常用的动画无非是以下四种: UIView动画。 核心动画。 帧动画。 自定义转场动画。 1.UIView动画 UIView动画是iOS开发中最廉价也是最常用的动画。UIView动画能够设置的动画属性有: frame bounds center transf
阅读全文
摘要:translatesAutoresizingMaskIntoConstraints含义 把 autoresizingMask 转换为 Constraints 即:可以把 frame ,bouds,center 方式布局的视图自动转化为约束形式。(此时该视图上约束已经足够 不需要手动去添加别的约束)
阅读全文
摘要:获取keywindow方法 let keyWindow:UIWindow = { var window:UIWindow = UIApplication.shared.keyWindow! if #available(iOS 13.0, *) { window = UIApplication.sha
阅读全文
摘要:MVC 基本MVC模式 如下图所示为基本的MVC(Model-View-Controller)模式结构图,可分为三部分:模型(Model)、视图(View)、控制器(Controller)。其在MVC模式中所扮演的角色分别为: Model:模型管理应用程序的数据,响应有关其状态信息(通常来自View
阅读全文
摘要:一,概述 默认情况下,Swift 会阻止你代码中发生的不安全行为。比如说,Swift 会保证在使用前就初始化,内存在变量释放后这块内存就不能再访问了,以及数组会检查越界错误。 Swift 还通过要求标记内存位置来确保代码对内存有独占访问权,以确保了同一内存多访问时不会冲突。由于 Swift 自动管理
阅读全文
摘要:一,ARC概述 ARC:"Automatic Reference Counting",自动引用计数。Swift语言延续了OC的做法,也是利用ARC机制进行内存管理,和OC的ARC一样,当一些类的实例不在需要的时候,ARC会释放它们的内存。在大多数情况下,这意味着 Swift 的内存管理机制会一直起作
阅读全文
摘要:一,概述 不透明类型 不透明类型是指我们被告知对象的功能而不知道对象具体是什么类型。 1. 具有不透明返回类型的函数或方法会隐藏返回值的类型信息。函数不再提供具体的类型作为返回类型,而是根据它支持的协议来描述返回值。 2. 在处理模块和调用代码之间的关系时,隐藏类型信息非常有用,因为返回的底层数据类
阅读全文
摘要:一,概述 官方说明 用 defer 语句在即将离开当前代码块时执行一系列语句。该语句让你能执行一些必要的清理工作,不管是以何种方式离开当前代码块的——无论是由于抛出错误而离开,或是由于诸如 return、break 的语句。 例如,你可以用 defer 语句来确保文件描述符得以关闭,以及手动分配的内
阅读全文
摘要:一,概述 错误处理:指对代码中的异常情况, 作出响应的过程。 swift 在运行时对错误的抛出、捕获、传递、操作提供了一级支持。 开发过程中, 有些操作往往不能保证一定成功, 在失败时, 我们需要知道失败的原因, 因此, 便需要错误处理以便做出相应的响应。例如: 从硬盘上读取文件时, 有多种原因会导
阅读全文
摘要:Swift特性 在讨论如何使用Swift提高代码质量之前,我们先来看看Swift本身相比ObjC或其他编程语言有什么优势。Swift有三个重要的特性分别是富有表现力/安全性/快速,接下来我们分别从这三个特性简单介绍一下: 富有表现力 Swift提供更多的编程范式和特性支持,可以编写更少的代码,而且易
阅读全文
摘要:使用泛型能让我们写出灵活的,可复用的函数和类型,这些函数和类型会根据我们定义的要求与任何类型一起使用。使用泛型我们不仅可以避免重复的代码而且能以更加清晰抽象的方式表达代码意图。 泛型是Swift最强大的特征之一,并且许多Swift的标准库都是使用泛型的代码编译的。 泛型解决的问题 ///整形 fun
阅读全文