- 博客(10)
- 资源 (12)
- 收藏
- 关注
原创 Swift系列三十五 - 源码和第三方库
Swift 于 2015 年正式开源。一、目录简介Github:https://github.com/apple/swift几个可能会经常看的目录:docs:一些文档stdlib:Swift 源码lib:C++源码include:C++头文件标准库源码位置:https://github.com/apple/swift/tree/main/stdlib/public/core二、Metadata 分析文档:https://github.com/apple/swift/blob/m
2021-05-08 09:38:26 630 2
原创 Swift系列三十四 - 响应式编程(RxSwift的使用)
响应式编程(Reactive Programming,简称RP)也是一种编程范式,于1997年提出,可以简化异步编程,提供更优雅的数据绑定。一、初始响应式编程响应式编程一般与函数式融合在一起,所以也会叫做:函数响应式编程(Functional Reactive Programming,简称FRP)。比较著名的,成熟的响应式框架:ReactiveCocoa简称RAC,有OC、Swift版本官网:http://reactivecocoa.io/github:https://github.c
2021-05-08 09:34:49 1264 2
原创 Swift系列三十三 - 面向协议编程
面向协议编程(Protocol Oriented Programming,简称POP)是Swift的一种编程范式,Apple于2015年WWDC提出。在Swift的标准库中,能见到大量POP的影子。一、POP和OOP1.1. 回顾OOPSwift也是一门面向对象的编程语言(Object Oriented Programming,简称OOP)。OOP的三大特性:封装、继承、多态。继承的经典使用场景:当多个类(比如A、B、C类)具有很多共性时,可以将这些共性抽取到一个父类中(比如D类),最后A、B、
2021-05-08 09:33:53 792
原创 Swift系列三十二 - 函数式编程
函数式编程(Funtional Programming,简称FP)是一种编程范式,也就是如何编写程序的方法论。一、什么是函数式编程?1.1. 介绍主要思想: 把计算过程尽量分解成一系列可复用函数的调用。主要特征: 函数是"一等公民"(函数与其他数据类型一样的地位,可以赋值给其他变量,也可以作为函数参数、函数返回值)。函数式编程中几个常用的概念:Higher-Order Function、Function CurryingFunctor、Applicative Functor、Monad
2021-05-08 09:31:29 746 1
原创 Swift系列三十一 - 多线程
多线程在Swift中也是首先使用GCD。一、异步1.1. GCD开启异步线程示例代码:class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() print("主线程", Thread.current) DispatchQueue.global().async {
2021-05-07 09:42:28 1288
原创 Swift系列三十 - 从OC到Swift(二)
协议、关联对象、KVO等Swift和OC的关系。一、协议1.1. 只能被class继承的协议示例代码:protocol Runnable1: AnyObject { }protocol Runnable2: class { }@objc protocol Runnable3 { }被@objc修饰的协议,还可以暴露给OC去遵守实现。1.2. 可选协议正常情况下,Swift定义的协议内容都需要实现,如果需要可选实现,可以定义一个协议扩展,在扩展中空实现需要可选实现的协议。也可以通过@o
2021-05-07 09:40:50 641 2
原创 Swift系列二十九 - 从OC到Swift(一)
现在大部分项目还是纯OC,即使迁移到Swift也只能是一点点模块过度,那么OC和Swift有什么样的区别呢?两者之间怎样相互调用?一、注释// MARK:类似于OC中的#pragma mark// MARK: -类似于OC中的#pragma mark-// TODO:用于标记未完成的任务// FIXME: -用于标记待修复的问题#warning("msg")用来做全局提示示例代码:public class Person { // MARK: - 属性 var age =
2021-05-07 09:38:36 623
原创 Swift系列二十八 - 数组
Swift中的数组有一些高级API非常好用(用法类似JavaScript)。一、Array的常见操作基础代码:var arr = [1, 2, 3, 4]print(arr) // 输出:[1, 2, 3, 4]1.1. map(映射)遍历每一个元素,元素在函数(闭包表达式)中处理完成后把返回值放到新的数组,返回一个新数组。示例代码:var arr2 = arr.map { element -> Int in return element * 2}print(a
2021-05-06 10:16:32 645
原创 Swift系列二十七 - 字符串
Swift的字符串类型String,跟OC的NSString,在API设计上还是有较大差异的。一、字符串内容操作1.1. 字符串的拼接示例代码:// 空字符串var emptyStr1 = ""var emptyStr2 = String()var str: String = "1"// 拼接str.append("_2")// 重载运算符+str = str + "_3"// 重载运算符+=str += "_4"// \()插值str = "\(str)_5"// 长度
2021-05-06 10:15:08 524 2
原创 Swift系列二十六 - 模式匹配
一、字面量(Literal)了解模式之前,我们先看下什么是字面量。var age = 10var isShow = falsevar name = "Jack"上面代码中的10,false,"Jack"就是字面量。1.1. 字面量类型常见字面量的默认类型:public typealias IntegerLiteralType = Intpublic typealias FloatLiteralType = Doublepublic typealias BooleanLiteralTyp
2021-05-06 10:14:05 515 1
deviceSupport_12.0(16A5288q)
2018-06-05
deviceSupport_11.3(15E5178d)
2018-06-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人