![](https://img-blog.csdnimg.cn/595bdf7c80b64d54b5bead633ef7ebed.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Apple开发入门
文章平均质量分 81
Apple初学者可以从本专栏开始逐步进入开发的圣堂,Good Luck!
大熊猫侯佩
一枚贪吃路痴还未秃码农。CSDN博客专家,iOS与Swift版块版主。
热爱苹果开发,擅长 Swift、ObjC、Ruby、C和汇编语言。
欢喜编程艺术、逆向、UNIX、Hacker思维与哲学、以及社会工程学。
展开
-
SwiftUI 6.0(iOS 18/macOS 15)关于颜色 Color 的新玩法
在本篇博文中,我们讨论了在 SwiftUI 6.0(iOS 18/macOS 15)中颜色 Color 结构新增的 mix() 方法,现在融合任何颜色再也不是“黄粱一梦”了!原创 2024-06-24 18:53:16 · 1211 阅读 · 28 评论 -
SwiftUI 6.0(iOS 18)ScrollView 全新的滚动位置(ScrollPosition)揭秘
在本篇博文中,我们介绍了 SwiftUI 6.0(iOS/iPadOS 18)中滚动视图(ScrollView)的全新升级,其中包括 ScrollPosition 以及动态获取滚动实时偏移(Content Offset)等精彩内容。原创 2024-06-22 10:46:53 · 1214 阅读 · 20 评论 -
SwiftUI 6.0(iOS/iPadOS 18)中全新的 Tab 以及 Sidebar+悬浮 TabView 样式
在本篇博文中,我们介绍了 SwiftUI 6.0(iPadOS 18/iOS 18)新标签页中新增的 Tab 和 TabSection 原生视图,并进一步讨论了如何让 TabView 支持 Sidebar 样式以及其它有趣的新特性。原创 2024-06-20 14:48:23 · 1360 阅读 · 17 评论 -
SwiftUI 6.0(Xcode 16)全新 @Entry 和 @Previewable 宏让开发妙趣横生
在本篇博文中,我们介绍了如何在最新的 SwiftUI 6.0(Xcode 16)中利用 WWDC24 中新祭出的 @Entry 和 @Previewable 宏让环境变量定义和 Xcode 界面预览调试更加得心应手,充满乐趣!原创 2024-06-16 21:24:39 · 1133 阅读 · 8 评论 -
SwiftUI 6.0(iOS 18)新容器视图修改器漫谈
在本篇博文中,我们讨论了 WWDC24 里 SwiftUI 6.0(iOS 18)中最新的容器视图修改器,并用简单的示例代码让小伙伴们豁然开朗!原创 2024-06-16 14:44:25 · 2055 阅读 · 18 评论 -
iOS 18 中全新 SwiftData 重装升级,其中一个功能保证你们“爱不释手”
在本篇博文中,我们介绍了 iOS 18 中 SwiftData 框架的“重装升级”。其中我感觉 #Expression 和 #Index 宏对小伙伴的实际帮助更为突出,大家怎么认为呢?欢迎讨论哦。原创 2024-06-15 13:32:15 · 1052 阅读 · 15 评论 -
苹果最新 WWDC 2024 系列开发视频观看指南
在本篇博文中,我们讲解了苹果最新 WWDC 2024 系列开发视频截止今日(6月12日)的大致的情况,并讨论了如何通过网页和 Developer App 凫趋雀跃的“欣赏”它们。原创 2024-06-12 16:56:24 · 796 阅读 · 5 评论 -
Swift 中更现代化的调试日志系统趣谈(一)
在本篇博文中,我们介绍了 Swift 中更加现代化的调试日志系统以及如何利用日志记录器 Logger 创建我们自己“心仪”的日志记录。我们还讨论了如何利用 Xcode 控制台中的调试元数据和过滤条件进一步让日志记录栩栩如生、手到擒来。原创 2024-06-12 15:31:37 · 1111 阅读 · 14 评论 -
Swift 中 @preconcurrency 修饰符使用浅谈
在本篇博文中,我们介绍了 Swift 语言中 @preconcurrency 修饰符的作用,以及它在一些应用语境中“雪中送炭”的具体示例。原创 2024-05-31 13:05:17 · 1075 阅读 · 18 评论 -
Swift 初学者交心:在 Array 和 Set 之间我们该如何抉择?
在本篇博文中,我们简单介绍了 Swift 语言中数组(Array)和集合(Set)两种类型的特性,并比较了它们在实际运行中的性能,最后我们进一步探讨了选择它们的基本原则。原创 2024-05-27 18:18:52 · 893 阅读 · 12 评论 -
SwiftUI 5.0(iOS 17)进一步定制 TipKit 外观让撸码如虎添翼
在本篇博文中,我们介绍了 SwiftUI 5.0 中从宏观全局调整 Tip 视图显示的几种方式。如果小伙伴们觉得还是不能放开手脚,我们还探讨了如何 100% 纯手工打造自己 Tip 内部布局的方法,包您满意!原创 2024-05-27 14:04:17 · 1534 阅读 · 6 评论 -
SwiftUI 中为何 DisclosureGroup 视图在收缩时没有动画效果?
在本篇博文中,我们介绍了 SwiftUI 2.0 新增的 DisclosureGroup 原生视图,并接着讨论了为什么它的收起操作没有动画,并最后给出解决方案。原创 2024-05-23 08:51:50 · 899 阅读 · 11 评论 -
Swift 初学者秘技:如何用模块(Module)进一步细粒度控制代码访问控制
在本篇博文中,我们介绍了 Swift 语言中的访问控制级别(Access Control),并讨论了如何利用外部模块(Module)进一步细粒度控制代码逻辑的可见性。原创 2024-05-20 09:50:15 · 623 阅读 · 12 评论 -
Swift 5.9 中 if 与 switch 语句简洁新语法让撸码更带劲
在本篇博文中,我们介绍了 Swift 语言中条件选择指令的“前世今生”,并讨论了 Swift 5.9 中 if 和 switch 语句更简洁的新语法。原创 2024-05-16 14:52:51 · 868 阅读 · 16 评论 -
SwiftUI 调整视图内容周围间隙(Content Margins)的“时髦”方法
在本篇博文中,我们讨论了在 SwiftUI 中调整视图周边空白间隙从而让其在 iPhone 和 iPad 都表现得相当 nice 的方法,我们还进一步介绍了如何利用 iOS 17(iPad 17)里新增的方法让以上的实现更加锦上添花的“秘技”!原创 2024-05-11 09:59:41 · 1045 阅读 · 17 评论 -
Swift 初学者趣谈:一招教你记住模式匹配 if case let 的语法,永不忘记
在本篇博文中,我们讨论了如何在 Swift 语言中巧妙记住模式匹配中 if case let 语法的构成,天荒地老永不忘记!原创 2024-05-11 09:52:35 · 1061 阅读 · 4 评论 -
Xcode 15 预览 SwiftUI 视图中 @FetchRequest 查询结果不能正确刷新的解决
在本篇博文中,我们介绍了 Xcode 15 预览 SwiftUI 视图中 @FetchRequest 的查询结果不能被正确刷新的问题,并通过应变措施让代码在模拟器、真机或是预览中都能毫无二致的反应出”理所当然“的运行结果。原创 2024-05-03 14:39:27 · 1470 阅读 · 7 评论 -
SwiftUI 5.0(iOS 17.0,macOS 14.0+)新 Inspector 辅助视图之趣味漫谈
在本篇博文中,我们讨论了 SwiftUI 5.0(iOS 17.0+,macOS 14.0+Mac Catalyst 17.0+)中新 Inspector 的驾驭之道,并进一步讨论了不同平台中 Inspector 表现的细微差别,最后我们为 Inspector 添加了物理快捷键让其弹出更加的巧捷万端。原创 2024-05-03 13:51:36 · 1607 阅读 · 15 评论 -
苹果开发初学者指南:Xcode 如何为运行的 App 添加环境变量(Environmental Variable)
在本篇博文中,我们介绍了 Xcode 15 运行 SwiftUI 代码出现“has passed an invalid numeric value to CoreGraphics”警告这一现象,并根据提示向小伙伴们演示了如何在 Xcode 中为 App 添加运行时的环境变量。原创 2024-04-18 13:15:06 · 1393 阅读 · 11 评论 -
SwiftUI 5.0(iOS 17.0)触摸反馈“震荡波”与触发器模式趣谈
在本篇博文中,我们介绍了 SwiftUI 5.0(iOS 17.0)中触觉反馈(Haptic)机制的实现,并由此抛砖引玉讨论了开发模式中的触发器模式,最后我们看到了实现自己心仪的触发器是多么的简单。原创 2024-04-17 14:30:36 · 1506 阅读 · 11 评论 -
Xcode 15.0 新 #Preview 预览让 SwiftUI 界面调试更加悠然自得
在本篇博文中,我们介绍了 Xcode 15+ 中新的 #Preview 预览机制,并讨论了如何利用 #Preview + @Observable 宏让 SwiftUI 界面调试更加“如虎添翼”。原创 2024-04-13 14:44:55 · 2416 阅读 · 24 评论 -
漫谈初学者处理 CoreData 数据之启示录
在本篇博文中,我们介绍了初学者在处理 CoreData 各种数据时一些有用的小启示,希望大家能够喜欢。原创 2024-04-10 10:32:34 · 676 阅读 · 14 评论 -
Swift 异步序列 AsyncStream 新“玩法”以及内存泄漏、死循环那些事儿(下)
在本篇博文中,我们通过实际代码中出现的例子介绍了 Swift 并发模型里使用异步序列可能出现的陷阱,并成功的让它们“全面瓦解”。原创 2024-04-09 16:42:53 · 1122 阅读 · 2 评论 -
Swift 异步序列 AsyncStream 新“玩法”以及内存泄漏、死循环那些事儿(上)
在本篇博文中,我们讨论了 Swift 5.5 新并发模型中用 AsyncStream 结构创建异步序列的新方法,并比较了它和之前旧的实现有哪些进步。原创 2024-04-09 14:07:19 · 1177 阅读 · 6 评论 -
SwiftUI 中无法对添加模糊(blur)效果视图截图的初步解决
在本篇博文中,我们介绍了在 SwiftUI 中无法对添加模糊(blur)效果视图截图问题的一些解决方法,并讨论了目前这些方法的一些不足之处。原创 2024-04-05 13:52:51 · 819 阅读 · 14 评论 -
Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(五)
在本篇博文中,我们一起讨论了实际上如何用 ARM64(AArch64)汇编代码“洒脱”的更改底层方法调用链、如何混合汇编和 ObjC 代码一起协同完成任务以及另一种避免 x0 寄存器被覆写的方法。原创 2024-04-01 13:33:27 · 1029 阅读 · 1 评论 -
Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(四)
在本篇博文中,我们介绍了什么是方法调用链,并详细讨论了通过 Hack 技术动态更改调用链实现指令流“随心所欲”的基本思路。原创 2024-03-24 21:49:25 · 1351 阅读 · 8 评论 -
Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(三)
在本篇博文中,我们讨论了如何手动撸码实现 SwiftHook 类似的 NSObject.init 构造器钩子功能;我们还尝试摆脱了 Hook 闭包功能中编译器生成的 ARC “桎梏”代码。原创 2024-03-24 16:21:48 · 1138 阅读 · 1 评论 -
Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(二)
在本篇博文中,我们先是介绍了如何使用 SwiftHook 库来完成 SWIZZ 的钩子功能,随后讨论了为什么 print 方法打印对象信息时会导致运行崩溃,以及如何巧妙的解决它。原创 2024-03-21 14:37:41 · 1253 阅读 · 19 评论 -
Swift 从获取所有 NSObject 对象聊起:ObjC、汇编语言以及底层方法调用链(一)
在本篇博文中,我们讨论了为什么要在 App 运行时“捕获”所有 NSObject 对象的实例、介绍了 NSObject 默认构造器方法里都做了神马事情,以及初步探讨了实现这一目的的基本原理。原创 2024-03-20 22:20:26 · 1358 阅读 · 15 评论 -
Swift 结构化并发之全局 Actor 趣谈
在本篇博文中,我们介绍了 Swift 结构化并发模型中全局 Actor 这一有趣话题,我们随后讨论了它与一般 Actor 的不同之处,以及全局 Actor 的应用场景。原创 2024-03-20 16:44:54 · 1053 阅读 · 12 评论 -
Swift 入门学习:集合(Collection)类型趣谈-下
在本篇博文中,我们接上篇继续介绍了 Swift 语言中集合类型 Set,并讨论了如何用 Range 类型来表示无穷多元素的集合;我们还介绍了苹果官方 Swift Collections 框架中更多的集合类型,超赞的哦。原创 2024-03-09 21:51:37 · 1434 阅读 · 13 评论 -
Swift 入门学习:集合(Collection)类型趣谈-上
在上篇的学习中,我们讨论了 Swift 中集合背后的 Collection 协议,并随后介绍了数组(Array)和字典(Dictionary)两种集合类型。原创 2024-03-09 21:39:42 · 1412 阅读 · 6 评论 -
SwiftUI 集合视图(Grid)拖放交换 Cell 的极简实现
在本篇博文中,我们讨论了在 SwiftUI 中如何为集合视图(Grid)添加拖放交换其 Cell 的功能,小伙伴们可以从代码中真正体会到 SwiftUI 的简洁之美!原创 2024-02-22 20:49:12 · 1280 阅读 · 15 评论 -
UIKit 在 UICollectionView 中拖放交换 Cell 视图的极简实现
在本篇博文中,我们讨论了 UIKit 中 UICollectionView 视图拖放操作的基本原理,并用最简单的代码实现了 UICollectionView 视图中 Cell 的交换功能。原创 2024-02-22 16:07:24 · 1225 阅读 · 5 评论 -
SwiftUI 更自然地向自定义视图传递参数的“另类”方式
在本篇博文中,我们讨论了 SwiftUI “传统”的视图接口定义在具有海量传入参数时的一些不便之处,并且用更加“低耦合”的“环保”方法改善了这一情况。相信现在小伙伴们对于 SwiftUI 中视图的构建会有更写意、更灵活的方式啦!原创 2024-02-20 17:02:57 · 1291 阅读 · 19 评论 -
Swift 5.9 新 @Observable 对象在 SwiftUI 使用中的陷阱与解决
在本篇博文中,我们讨论了在 SwiftUI 中融合 Swift 5.9 新 @Observable 对象的几种方式,并比较了它们细微差别下的潜在陷阱,最后提供了非常简单的解决之道。原创 2024-02-18 15:08:08 · 1439 阅读 · 17 评论 -
Swift 隐藏宝藏:“逆天改命”调整方法重载(function overloading)优先级
在本篇博文中,我们先是介绍了 Swift 语言中当方法的多个重载同时满足调用语义时编译器的选择之道,并且随后进一步讨论了如何“逆天改命”修改这一默认的选择法则。原创 2024-02-05 14:12:54 · 1045 阅读 · 13 评论 -
Swift 入门之自定义类型的模式匹配(Pattern Matching)
在本篇博文中,我们讨论了在 Swift 中如何优雅的适配模式匹配,并介绍了如何使用模式匹配操作符重载机制在 switch 语境中让开发“简约而简单”。原创 2024-02-03 11:01:57 · 1512 阅读 · 11 评论 -
SwiftUI 趣谈之:绝不可能(Never)的 View!
在本篇博文中,我们先是讨论了 Swift 语言中 Never 类型的起源,以及 Never 在 SwiftUI 中的“真正使命”,最后我们尝试了创建自己的 Never 视图。原创 2023-12-23 12:08:58 · 1036 阅读 · 12 评论