首页
学习
活动
专区
工具
TVP
发布

韦弦的偶尔分享

最近自己没啥产出,所以主要翻译一些大神的博文,自己学习的同时,希望对您也有用。
专栏作者
195
文章
338515
阅读量
37
订阅数
Swift 中的 Phantom(幻象)类型
模糊的数据可以说是一般应用程序中最常见的错误和问题的来源之一。虽然 Swift 通过其强大的类型系统和完善的编译器帮助我们避免了许多含糊不清的来源——但只要我们无法在编译时保证某个数据总是符合我们的要求,就总是有风险,我们最终会处于含糊不清或不可预测的状态。
韦弦zhy
2022-04-26
8490
Swift 中的抽象类型和方法
在面向对象的编程中,抽象类型提供了一个基础实现,其他类型可以从中继承,以获得某种共享的、共同的功能。抽象类型与普通类型的区别在于,它们永远不会被当作原样使用(事实上,一些编程语言甚至阻止抽象类型被直接实例化),因为它们的唯一目的是作为一组相关类型的共同父类。
韦弦zhy
2022-03-30
7580
Swift 中风味各异的依赖注入
在之前的文章中,我们看了一些使用依赖注入的不同方法,以实现Swift应用中更多的解耦和可测试架构。例如, "在Swift中使用工厂的依赖注入"中把依赖注入和工厂模式结合起来,以及"在Swift中避免使用单利" 中利用依赖注入取代单利。
韦弦zhy
2022-03-30
7530
利用Swift协议替换历史遗留的代码
维护任何应用程序、框架或系统的一个重要部分是处理历史代码。无论一个系统的架构有多好,历史遗留问题总是会随着时间的推移而被建立起来——这可能是因为底层SDK的变化,因为功能集的扩展,或者仅仅是因为团队中没有人真正知道某个特定部分是如何工作的。
韦弦zhy
2022-03-30
4290
通过 3 个简单的步骤测试使用了系统单例的 Swift 代码
大多数为苹果的任何平台编写的应用程序都依赖基于单例的API。从UIScreen到UIApplication再到NSBundle,静态API在Foundation、UIKit和AppKit中无处不在。
韦弦zhy
2022-03-30
4330
避免在Swift中使用单例
"我知道单例是不好的,但是......",这是开发人员在讨论代码时经常说的话。社区里似乎有一个共识,那就是单例是 "不好的",但同时苹果和第三方的Swift开发者都在应用内部和共享框架中不断使用它们。
韦弦zhy
2022-03-30
4450
在Swift中标识对象
我们经常会遇到这样的情况:我们需要找到一种方法,根据一些身份的概念来存储对象。无论是在缓存中,还是在磁盘上存储对象的表示,或者简单地使用字典——我们经常需要找到方法来唯一地识别我们所处理的对象。
韦弦zhy
2022-03-30
7000
在 Swift 中自定义操作符
很少有Swift功能能和使用自定义操作符的一样产生如此多的激烈辩论。虽然有些人发现它们真的有用,可以降低代码冗余,或实施轻量级语法扩展,但其他人认为应该完全避免它们。
韦弦zhy
2021-07-01
1.5K0
Swift 基于闭包的类型擦除
与许多其他语言相比,使Swift更加安全,更不易出错的原因之一是其先进的(并且在某种程度上是不容忍的)类型系统。这是一种语言功能,有时可能会给人留下深刻的印象,使您的工作效率提高很多,而有时却令人沮丧。
韦弦zhy
2021-06-11
1K0
Swift 中的属性包装器
当处理代表某种状态形式的属性时,通常会在每次修改值时触发某种关联的逻辑。例如,我们可以根据一组规则验证每个新值,可以以某种方式转换分配的值,或者每当值更改时都可以通知一组观察者。
韦弦zhy
2021-04-08
2.5K0
Codable 解析 JSON 忽略无效的元素
默认情况下,使用 Swift 内置的 Codable API 编码或解码数组只有全部成功或者全部失败两种情况。可以成功处理所有元素,或者引发错误,这可以说是一个很好的默认设置,因为它可以确保高水平的数据一致性。
韦弦zhy
2021-04-07
3.1K0
在 Xcode 中添加 Swift package 依赖
到目前为止,我们一直在编码的所有内容都是我们从头开始构建的内容,因此您可以确切地了解其工作原理并将这些技能应用于自己的项目。但是,有时候,从头开始写东西是有风险的:也许代码很复杂,也许很容易出错,也许它经常更改,或者其他各种原因,这就是模块依赖存在的原因——能够获取第三方代码并在我们的项目中使用它。
韦弦zhy
2020-09-18
6.1K0
是什么使代码 “Swifty”? —— Expressive
Swift的官方网站上的About页面列出了三个关键字: 安全(Safe):为了最大限度地减少开发人员的错误; 迅速(Fast):执行的速度要快; 表现力(Expressive):因为Swift
韦弦zhy
2020-03-20
6130
是什么使代码 “Swifty”? —— Fast
Swift的官方网站上的About页面列出了三个关键字: 安全(Safe):为了最大限度地减少开发人员的错误; 迅速(Fast):执行的速度要快; 表现力(Expressive):因为Swift
韦弦zhy
2020-03-20
7000
是什么使代码 “Swifty”? —— Safe
尽管编程语言是由其语法正式定义的,但实际上在实践中使用它们的方式还是可以由它们当前的约定来确定的。毕竟,就语法而言,大多数受“ C影响 ” 的语言看起来都非常相似,以至于您可以用几乎使它看起来像JavaScript,C#或C本身的方式编写Swift。
韦弦zhy
2020-03-20
8430
Swift 5.1 中引入的部分有用的新特性
Swift 5.1现在已经正式发布,尽管只是次要版本,它包含了大量的更改和改进。从基本的新功能,例如模块稳定性(使SDK供应商可以交付预编译的Swift框架)到所有SwiftUI以及其他功能的新语法功能。
韦弦zhy
2020-02-18
1.3K0
Swift:静态工厂方法
大多数对象在我们的APP中使用之前,都需要某种形式的设置。无论是我们要根据APP的品牌设置样式的视图(View),还是要配置的视图控制器(View Controller),亦或是在测试中创建存根的值时,我们经常发现需要将设置代码放在某个地方。
韦弦zhy
2020-02-18
2.3K0
Swift:轻量级API的设计(二)
Swift的最强大功能之一就是在设计API方面给我们提供了极大的灵活性。这种灵活性不仅使我们能够定义易于理解和使用的函数和类型,还使我们能够创建给人以非常轻量级为第一印象的API,同时在需要的时候仍可以逐步暴露更多功能和复杂性。
韦弦zhy
2020-02-18
5160
Swift:轻量级API的设计(一)
Swift的最强大功能之一就是在设计API方面给我们提供了极大的灵活性。这种灵活性不仅使我们能够定义易于理解和使用的函数和类型,还使我们能够创建给人以非常轻量级为第一印象的API,同时在需要的时候仍可以逐步暴露更多功能和复杂性。
韦弦zhy
2020-02-18
6840
微信小程序展开全文
设置130为临界值,是试了3行基本不超过120rpx,4行基本大于140rpx,取了个中间值
韦弦zhy
2018-09-11
1.5K0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档