- 博客(1504)
- 资源 (8)
- 收藏
- 关注
原创 SwiftUI 中创建一个自定义文件管理器只需4步!你敢信!?
在本篇博文中,我们讨论了如何在 SwiftUI 中仅需 4 步就完成一个“麻雀虽小却五脏俱全”的自定义文件管理器,相信学完本课小伙伴们都会受益良多。
2023-12-07 20:29:25
190
12
原创 SwiftUI 中如何让用户恣意的拖动视图
在本篇博文中,我们实现了让用户在 SwiftUI 中恣意的拖动视图。我们学习了 GestureState 手势状态的使用,并利用 SwiftUI 辅助调试技术来更好的“暴露”界面运行上的问题。
2023-12-07 10:22:38
75
9
原创 SwiftUI 如何动态开始和停止播放永久重复(repeatForever)动画
在本篇博文中,我们讨论了在 SwiftUI 中如何动态开始和停止播放永久重复(repeatForever)的动画,同时避免不必要的动画“叠加”效果。
2023-11-21 21:02:15
806
24
原创 Swift 如何打造兼容新老系统的字符串分割(split)方法
在本篇博文中,我们讨论了在 iOS 16 之前和之后如何实现字符串分割字符串的功能,并用把它应用到了实际的例子中。
2023-11-18 14:29:41
742
1
原创 Swift 警惕“隐式异步(implicitly asynchronous)”方法的执行陷阱
在本篇博文中,我们讨论了被 @MainActor 修饰的“隐式”异步方法也有可能不在主线程上下文中执行这一隐藏的陷阱,并对其原因和解决办法做了详细的说明。
2023-11-14 21:06:47
243
9
原创 消失的它:摆脱 SwiftUI 中“嵌入视图数量不能超过 10 个”限制的秘密
在本篇博文中,我们讨论了 SwiftUI 中“嵌入视图数量不能超过 10 个”这一限制的原因,并介绍了从 Swift 5.9+ 开始这一限制为什么最终消失了?
2023-11-13 14:24:46
145
14
原创 SwiftUI 如何保证 Text 中字符数量相等的字符串显示宽度一定相同?
在本篇博文中,我们讨论了在 SwiftUI 中如何保证 Text 里字符数量相等的字符串显示宽度一定相同,并且字符串内部的换行也同样保持一致。
2023-11-11 15:22:16
362
13
原创 Swift 抛砖引玉:从数组访问越界想到的“可抛出错误”属性
在本篇博文中,我们讨论了 Swift 5.5 中新增的“实效只读属性”(Effectful Read-only Properties),它有哪些用途?怎么用它来解决 Swift 数组访问越界的“老问题”?最后,我们用 ruby 代码举了一个更优雅的实现。
2023-11-10 16:45:28
191
10
原创 ruby、Python 以及 Swift 语言关于 “Finally” 实现的趣谈
在本篇博文中,我们讨论了 ruby、Python 和 Swift 语言中对 Finally 机制的不同实现,并用诸多代码片段来演示它们实际的使用,小伙伴们值得拥有!
2023-11-05 17:34:21
1041
21
原创 Swift 和 Python 两种语言中带关联信息错误(异常)类型的比较
在本篇博文中,我们讨论了在 Swift 和 Python 两种语言中对于带关联信息的错误(异常)类型是如何实现的这一话题,并对哪种实现更优雅给出笔者自己的感悟。
2023-11-05 15:00:29
324
1
原创 SwiftUI 代码调试之都是“变心”惹的祸
在本篇博文中,我们讨论了 SwiftUI 开发中一个非常常见的问题,并借助一步步溯本回原的推理找到症结根本之所在,最后一发入魂将其完美解决!相信小伙伴们都能由此受益匪浅。
2023-11-05 10:23:08
882
5
原创 SwiftUI 如何为文件和图片加入便捷的快速预览功能
在本篇博文中,我们在 SwiftUI 中实现了任意(包括图片、PDF、HTML、文本等等)文件内容的快速预览功能,我们还更进一步为其添加了预览窗口弹出控制和缓存的支持。
2023-11-01 16:52:34
217
14
原创 『第十四章』雨燕的自我修养:Swift 调试技巧(下)
在本篇博文中,我们首先介绍了 Xcode 对 UI 调试的支持,接着讨论了 Instruments 工具和 Xcode 15 中新的结构化日志调试机制,最后我们总结了一些非常有用的调试小技巧。
2023-10-30 15:05:04
149
4
原创 『第十三章』雨燕的自我修养:Swift 调试技巧(上)
在本篇博文中,我们先是介绍了 Swift 调试的基础知识,随后讲解了 LLDB 以及它常用的一些调试命令,接着我们介绍了 Xcode 中断点的类型和管理,最后我们学习了 Swift 代码本身和日志对调试的支持。
2023-10-30 14:42:11
212
原创 『第十二章』数据持久化:SwiftData
在本篇博文中,我们介绍了全新的 SwiftData 数据库;我们讨论了它的组成要素、数据模型以及对应的 CRUD 操作;最后我们介绍了它是如何与 SwiftUI 组合而实现最大威力的。
2023-10-30 14:15:13
134
原创 『第十一章』数据持久化:CoreData 与 CloudKit
在本篇博文中,我们详细介绍了 CoreData 数据库模型;随后我们讨论了如何用 CouldKit 将本地数据同步到云存储上去;我们还介绍了 CoreData 是如何与 SwiftUI 搭档威力大增的。
2023-10-29 18:58:52
372
10
原创 『第十章』仪态万千的雨燕:UIKit 和 SwiftUI
在本篇博文中,我们先是简要介绍了 UIKit 框架,接着我们详细讨论了 SwiftUI 以及它的重要组件:原生视图、修改器、状态与“真相之源”、动画以及与 UIKit 互动等众多话题。
2023-10-28 19:10:13
240
原创 『第九章』雨燕新量子引擎:结构化并发
在本篇博文中,我们讨论了 Swift 中新结构化并发模型。我们依次介绍了 async/await 关键字、结构化与非结构化、异步序列以及 Actor;最后,我们连通了“旧”和“新”两个并行世界,让 Swift 的并发宇宙混为一体,融会贯通。
2023-10-28 16:56:23
104
原创 『第八章』进击的雨燕:Combine 框架
在本篇博文中,我们介绍了 Swift 的 Combine 框架,它是响应式编程(Reactive Programming)在 Swift 中的一个实现,我们随后讨论了它的重要组成部分,最后举了一些例子帮助大家加深理解。
2023-10-27 20:19:55
112
3
原创 『第七章』翩翩起舞的雨燕:顺序与并发执行
在本篇博文中,我们介绍了 Swift 代码顺序和并发两种不同执行方式;我们还深入探讨了并发中数据竞争、线程同步以及线程爆炸等问题,最后我们一起聊了聊 RunLoop 和定时器的知识。
2023-10-27 19:02:08
212
1
原创 『第六章』三见倾情:初识小雨燕(下)
在本篇博文中,我们介绍了 Swift 语言中控制流、ARC和引用循环以及错误处理这三个非常重要的话题。至此,我们完成了 Swift 语言基本知识的学习。
2023-10-27 10:21:48
62
原创 『第五章』二见痴心:初识小雨燕(中)
在本篇博文中,我们陆续介绍了 Swift 中值与引用类型、OOP和POP、协议与扩展以及泛型和宏的一些基本开发知识。
2023-10-25 16:34:52
322
5
原创 『第四章』一见倾心:初识小雨燕(上)
在本篇博文中,我们简单介绍了 Swift 语言中的基本类型、自定义类型(复合类型)、聚集以及运算符等内容。我们会在后续文章中更详细讨论它们的使用场景。
2023-10-25 15:24:16
283
原创 『第三章』雨燕栖息地:Swift 开发环境
在本篇博文中,我们介绍了 Mac 上的主力开发工具 Xcode,并讨论了学习 Swift 语言的几种方式和平台:Xcode iOS App 项目、Xcode Playground,iPad(Mac)Swift Playgrounds 以及 Swift REPL 交互环境。
2023-10-25 07:36:24
469
1
原创 『第二章』这只燕子很特别:Swift 特性
在本篇博文中,我们从 Swift 前任 Objc 开始介绍,如数家珍的列出了 Swift 诸多特点和优势,最后我们用了一小段简洁的代码片段让小伙伴们初步领略到 Swift 之美。
2023-10-24 22:38:33
85
原创 『第一章』命运的齿轮开始转动:雨燕(Swift)诞生!
在本篇博文中,我们一起回顾了 Swift 语言从诞生、发展、壮大、到标准化的进程,并从目前承前启后 5.9 版本展望未来 6.0 版本的远景规划。
2023-10-24 21:50:39
74
原创 CoreData + CloudKit 在初始化 Schema 时报错 A Core Data error occurred 的解决
在本篇博文中,CoreData + CloudKit 项目在初始化 Schema 报 “A Core Data error occurred” 错时,我们通过擘肌分理的分析找到了问题的原因,并成功将其降服!
2023-10-09 15:02:35
185
12
原创 SwiftUI 4.0:两种方式实现子视图导航功能
在本篇博文中,我们在 SwiftUI 4.0 里通过两种不同方式实现了相同的子视图导航功能,任君选择。
2023-10-04 16:33:22
165
3
原创 Swift 5.9 与 SwiftUI 5.0 中新 Observation 框架应用之深入浅出
在本篇博文中,我们讨论了在 Swift 5.0 和 SwiftUI 5.0 中大放异彩 Observation 框架的使用,并就诸多技术细节问题给与了详细的介绍,愿君喜欢。
2023-10-04 14:17:41
1126
6
原创 Xcode 超简单实用小秘技让撸码进入新境界
在本篇博文中,我们介绍了两个非常简单、但却会让 Xcode 使用进入一个新境界的操作秘技,相信大家会喜欢上它们。
2023-10-01 14:20:03
179
9
原创 macOS 14 Sonoma 如何删除不需要的 4k 动态壁纸
在本篇博文中,我们讨论了如何仅需 2 步即可轻松在 macOS 14(Sonoma)中删除不需要的 4k 高清动态壁纸。
2023-09-27 10:02:05
9251
5
原创 深入理解 Swift 新并发模型中 Actor 的重入(Reentrancy)问题
在本篇博文中,我们通过难易不同的两个小例子深入浅出的向小伙伴们介绍了 Swift 新并发模型中 Actor 重入(Reentrancy)可能引发的问题,并给出解决方案。
2023-09-26 15:03:46
566
3
原创 SwiftUI 在 iOS 17 上发生“诡异”崩溃的解决:AsyncRenderer layout engine performed from background thread
在本篇博文中,我们通过缜密分析,成功解决了 SwiftUI 只在 iOS 17 发生的 AsyncRenderer 线程中 NSIS 引擎渲染布局发生冲突导致的崩溃问题并介绍了该崩溃是由于 iOS 17 中一个重要改变引起的。
2023-09-25 20:34:15
796
6
原创 如何让异步序列(AsyncSequence)优雅的感知被取消(Cancel)
在本篇博文中,我们首先简单介绍了什么是异步序列,接着学习了几种创建自定义异步序列的方法,最后我们讨论了如何优雅的取消异步序列的迭代。
2023-09-24 09:33:55
218
4
原创 SwiftData(iOS 17+)如何在数据新建和更新中途出错时恢复如初?
在本篇博文中,我们首先简单介绍了 SwiftData (iOS 17+)框架,随后讨论了在 SwiftData 数据新建或更新中途发生错误时如何优雅的将一切恢复到原来的状态。
2023-09-21 16:02:53
658
8
原创 CoreData 在新建或更新托管对象中途发生错误时如何恢复如初?
在本篇博文中,我们讨论了如何在 CoreData 托管对象新建和更新发错误时,“丢弃”任何已经发生的改变,将一切"回归本初"!
2023-09-20 11:54:46
202
10
原创 URL 路径中包含百分号需要在 Swift 中的特殊处理
在本篇博文中,我们讨论了使用包含百分号(%)的 URL 路径在 Swift 中需要考虑到的几个地方,为了让大家觉得更加浅显易懂我们还举了一个非常实际的例子。
2023-09-18 13:16:54
221
10
原创 Swift 新并发模型中 isolated 和 nonisolated 关键字的含义看这篇就懂了!
在本篇博文中,我们通过几个通俗易懂的例子让小伙伴们轻松了解到 Swift 新 async/await 并发模型中 isolated 与 nonisolated 关键字的精髓,并对它们做了进一步的深入拓展。
2023-09-14 14:38:32
197
11
原创 SwiftUI 5.0(iOS 17)TipKit 让用户更懂你的 App
在本篇博文中,我们介绍了 SwiftUI 5.0(iOS 17)中新引进的开发框架 TipKit,使用它我们可以非常方便和快速的向用户介绍我们 App 中的各种特性和使用指南,小伙伴们还不快操练起来!
2023-09-11 10:39:07
553
9
原创 SwiftUI 内功:“曳光弹“实现自定义样式进度条(ProgressView)
在本篇博文中,我们利用敏捷开发中“曳光弹”原则步步为营打造了一款漂亮的进度条样式;我们最终完美的实现了目标,更重要的是:我们学到了软件工程中重要的一课!
2023-09-10 10:32:53
245
5
iOS 15.4 真机调试支持包(可支持最新的iOS 15.4.1系统)
2022-04-03
SwiftUI编程实现不同TabView标签页中任意导航层级视图之间相互跳转的演示代码
2022-04-03
unlocker_new
2008-11-10
UnlockerEx
2008-04-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人