Swift高级进阶
文章平均质量分 91
Z苗
这个作者很懒,什么都没留下…
展开
-
使用 Property Wrapper 为 Codable 解码设定默认值
本文介绍了一个使用 Swift Codable 解码时难以设置默认值问题,并利用 Property Wrapper给出了一种相对优雅的解决方式,来在 key不存在时或者解码失败时,为某个属性设置默认值。这为编解码系统提供了更好的稳定性和可扩展性。最后,对 enum类型在某些情况下是否胜任进行了简单讨论。Codable 类型中可选值的窘 (囧?) 境基础类型可选值Codable 的引入极大简化了 JSON 和 Swift 中的类型之间相互转换的难度。当我们将 Swift 类型中的一个值设定为可.转载 2021-12-22 11:34:16 · 651 阅读 · 0 评论 -
swift 5初始化 被忽略的Convenience便捷初始化、Required和继承
初始化原创 2021-11-03 14:17:16 · 1496 阅读 · 0 评论 -
Swift之深入解析访问控制权限
简介概念访问控制可以限定其他源文件或模块中代码对你代码的访问级别。你可以明确地给单个类型(类、结构体、枚举)设置访问级别,也可以给这些类型的属性、函数、初始化方法、基本类型、下标索引等设置访问级别。协议也可以被限定在一定的范围内使用,包括协议里的全局常量、变量和函数。访问控制基于模块与源文件。模块指的是以独立单元构建和发布的 Framework 或 Application。在 Swift 中的一个模块可以使用 import关键字引入另外一个模块。源文件是单个源码文件,它通常属于一个模块原创 2021-10-03 16:13:20 · 491 阅读 · 0 评论 -
Swift:为String、Array、Dictionary添加isNotEmpty属性
前言想要为Swift的String、Array、Dictionary这几种常见类型,添加一个isNotEmpty属性。灵感来源于Dart中对于判断数组不为空有一个isNotEmpty属性:final array = [1, 2, 3, 4];print(array.isNotEmpty);Dart有,Swift也可以有啊。直接明了版本最直接明了的版本当然就是分别给String、Array、Dictionary写分类,在分类中添加一个只读计算属性isNotEmpty即可。String+Ext原创 2021-09-29 13:46:38 · 337 阅读 · 2 评论