Swift 文章/教程

Swift,苹果于2014年WWDC苹果开发者大会发布的新开发语言,可与Objective-C共同运行于macOS和iOS平台,用于搭建基于苹果平台的应用程序。Swift是一款易学易用的编程语言,而且它还是第一套具有与脚本语言同样的表现力和趣味性的系统编程语言。Swift的设计以安全为出发点,以避免各种常见的编程错误类别。

Swift 中 Opaque Types学习指南

目录 什么是Opaque Types 如何使用 为什么要使用 可读性更强 性能更好 使用的限制 总结 什么是Opaque Types Opaque Types 是在 Swift5.7 新添加的一个特性。主要是和 Protocol 来搭配使用,用来定义函数中的参数类型。它的作用就是 »

Swift之struct二进制大小分析

随着Swift的日渐成熟和给开发过程带来的便利性及安全性,京喜App中的原生业务模块和基础模块使用Swift开发占比逐渐增高。本次讨论的是struct对比Class的一些优劣势,重点分析对包体积带来的影响及规避措施。 作者:京东零售 邓立兵 随着Swift的日渐成熟和给开发过程带来的便 »

jingdongkeji

Swift中的高阶函数功能作用示例详解

目录 高阶函数的作用 1. 简化代码 2. 提高可读性 3. 支持函数式编程 4. 提高代码的可重用性 常见的高阶函数 1. map() 2. filter() 3. reduce() 4. sorted() 5. forEach() 6. compactMap() 7. flatMap() »

Swift中的可选项Optional解包方式实现原理

目录 为什么需要Optional 什么是Optional Optional实现原理 Optional的解包方式 1. 可选项绑定(Optional Binding) 2. 强制解包(Forced Unwrapping) 3. 隐式解包(Implicitly Unwrapped Optionals »

Swift中的可选项Optional解包方式实现原理

目录 为什么需要Optional 什么是Optional Optional实现原理 Optional的解包方式 1. 可选项绑定(Optional Binding) 2. 强制解包(Forced Unwrapping) 3. 隐式解包(Implicitly Unwrapped Optionals »

swift 错误处理do catch try try!使用详解

在swift中 如果我们要定义一个表示错误类型非常简单,只要遵循Error协议就可以了,我们通常用枚举或者结构体来表示错误类型,枚举可能用的多些,因为他能更直观的表达当前错误类型的每种错误细节。 // // AboutError.swift // learn_swiftUi // // »

swift 错误处理do catch try try!使用详解

在swift中 如果我们要定义一个表示错误类型非常简单,只要遵循Error协议就可以了,我们通常用枚举或者结构体来表示错误类型,枚举可能用的多些,因为他能更直观的表达当前错误类型的每种错误细节。 // // AboutError.swift // learn_swiftUi // // »

Swift Package 技巧及混编兼容问题详解

目录 创建 Package 使用 Package 维护 Package 版本控制 本地调试修改 Package 之间的依赖 混编问题 target 拆分 引用以及和 cocoapods 的兼容问题 创建 Package mkdir somePath cd somePath »

Swift Package 技巧及混编兼容问题详解

目录 创建 Package 使用 Package 维护 Package 版本控制 本地调试修改 Package 之间的依赖 混编问题 target 拆分 引用以及和 cocoapods 的兼容问题 创建 Package mkdir somePath cd somePath »

Swift重构自定义空等运算符 “??=” 实例

目录 一、思路来源 二、示例 三、源码 四、总结 一、思路来源 最近在做 Flutter 开发时发现一个之前没注意到的空等运算符 “??=”,代表左边为空时,才会把右边的值赋给左边,然后返回左边的变量值;常用于避免多次赋值的情况;发现非常实用,于是给 swift 也自定义一个使用,最终 »

Swift 重构重载运算符示例解析

目录 一、思路来源 二、基础类型 String 为例 重载乘法运算符 源码实现: 三、对象类型 UIEdgeInsets 为例 重载加法运算符将 源码实现: 四、总结 一、思路来源 研究自定义运算符的时候,又重新看了一下重载运算符,觉得挺有意思的,随手封装了几个。 二、基 »

Swift Package使用技巧及混编兼容问题怎么解决

本篇内容主要讲解“Swift Package使用技巧及混编兼容问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Swift Package使用技巧及混编兼容问题怎么解决”吧! 创建 Package mkdir somePath cd someP »

Swift Package使用技巧及混编兼容问题怎么解决

本篇内容主要讲解“Swift Package使用技巧及混编兼容问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Swift Package使用技巧及混编兼容问题怎么解决”吧! 创建 Package mkdir somePath cd someP »

Swift Error重构优化详解

目录 背景现状 问题分析 期望结果 技术选型 优化解决 Error模型 优化前 优化后 基类Request 优化前 优化后 模块调用 优化前 优化后 总结 背景现状 项目每积累到一定程度,代码的重构优化是必经之路。 试卷项目初期,整体错误Code较少,直接使用更便于 »

Swift Error重构的基础示例详解

目录 Error 定义 概述 用枚举来表示简单的错误 用结构体或其他类型表示复杂的错误 处理Error的三种方式 相关的一些关键词 rethrows & throws try / try!/ try? / defer fatalError Error相关的协议 Localized »

Swift HTTP加载请求Loading Requests教程

目录 正文 遵循HTTPLoading协议 创建Result 用法 正文 到目前为止,我们已经看了一个简单的Request/Response的结构体和实现。接下来,我们来讨论一下发送请求和接收响应。 如果我们回想一下第一节,我们会用HTTP回调给他,我们发送了一个请求,并且最终得到了 »

Swift中的HTTP模拟测试示例详解

目录 正文 StarWarsAPI 类 MockLoader 正文 我们已经了解了单个方法如何为通过网络加载请求提供基础。 然而,网络也是开发应用程序时最大的失败点之一,尤其是在单元测试方面。 当我们编写单元测试时,我们希望测试是可重复的:无论我们执行多少次,我们应该总是得到相同 »

Swift中的HTTP请求体Request Bodies使用示例详解

目录 正文 通用化body 空请求体 EmptyBody 数据体 DataBody JSON体 JSONBody 表单 FormBody 其他Body Other Bodies 正文 在进行HTTPRequest请求发送前,我们稍稍改进一下我们的结构体,最后,我们将会以下面的信息输出: »

仓库模式及其在Swift 项目中的应用详解

目录 正文 不使用仓库模式时的代码 使用仓库有什么好处? 设计仓库接口 实现仓库接口 选择用哪个仓库实现 处理数据源的变更 总结 正文 在现代 Swift 项目中,很流行一种模式叫做仓库模式,英文是 Repository Pattern。这个模式主要用于构建数据层代码。按照一般的 Ap »

swift依赖注入和依赖注入容器详解

目录 什么是控制反转(Inversion of Control)? 什么是依赖注入? 依赖注入的种类 初始化器注入 属性注入 方法注入 依赖注入容器 实现一个简单的依赖注入容器 总结 什么是控制反转(Inversion of Control)? 控制反转就是把传统的控制逻辑委 »