30天学会Swift
文章平均质量分 91
明似水
记录和分享生活中的点点滴滴,为达到人生追求的境界:喜悦、平和与爱
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
30天学会Swift-30:SwiftUI-项目实战与部署
笔记列表:显示所有笔记,支持添加、删除、编辑。笔记详情:显示笔记内容,支持编辑。数据持久化:使用Core Data存储笔记。搜索功能:在笔记列表中搜索笔记。原创 2025-08-16 09:51:18 · 1041 阅读 · 0 评论 -
30天学会Swift-29:SwiftUI-集成第三方库与Swift Package Manager
摘要 本文介绍了在SwiftUI项目中集成第三方库的方法和常用工具。主要内容包括:使用Swift Package Manager(SPM)添加、更新和移除第三方库的详细步骤;推荐了三个实用的SwiftUI相关库(Kingfisher图片加载、Lottie动画、Charts图表)并提供了使用示例;强调了使用第三方库的优势(提高效率、保证质量、实现复杂功能)和注意事项(兼容性检查、文档阅读)。最后设计了两个实践练习:通过Kingfisher显示网络图片和集成Lottie播放动画,帮助开发者掌握实际应用技巧。原创 2025-08-16 09:50:24 · 1386 阅读 · 0 评论 -
30天学会Swift-28:SwiftUI-网络请求与JSON解析
本文介绍了在SwiftUI应用中实现网络请求的方法。主要内容包括:使用URLSession进行HTTP请求、通过Codable协议解析JSON数据、处理异步操作(async/await)以及在视图中展示网络数据。文章提供了创建API服务类、定义数据模型、执行网络请求和错误处理的完整代码示例,并展示了如何在SwiftUI视图中绑定和显示数据。同时介绍了POST请求的编码实现,帮助开发者全面掌握iOS网络编程的核心技术。原创 2025-08-16 09:49:41 · 502 阅读 · 0 评论 -
30天学会Swift-27:SwiftUI-CoreData集成
本文介绍了在SwiftUI项目中集成和使用Core Data的方法。主要内容包括:Core Data的核心组件(NSManagedObjectModel、NSPersistentStoreCoordinator等);如何在Xcode中创建Core Data项目并配置PersistenceController;定义数据模型和NSManagedObject子类;使用@FetchRequest获取数据并自动更新视图;实现数据的增删改操作(通过NSManagedObjectContext);以及数据持久化的基本原理原创 2025-08-16 09:49:00 · 713 阅读 · 0 评论 -
30天学会Swift-26:SwiftUI-自定义视图与布局
SwiftUI自定义视图与布局系统摘要 SwiftUI提供了强大的自定义视图能力,可通过创建遵循View协议的struct来构建可重用组件,支持数据绑定和样式封装。ViewModifier允许将修饰逻辑封装成可复用样式。SwiftUI采用"提议-协商-确定"的布局机制,通过VStack、HStack等容器视图和frame、padding等修饰符控制布局。GeometryReader能获取视图尺寸和位置信息,用于动态布局。PreferenceKey和AnchorPreference实现了视原创 2025-08-16 09:48:19 · 852 阅读 · 0 评论 -
30天学会Swift-25:SwiftUI-手势
SwiftUI手势处理指南 本文介绍了SwiftUI中常用的手势识别功能,包括点击、拖动、缩放和旋转手势的基本用法。主要内容包括: 点击手势(onTapGesture)的单次和多次点击实现 拖动手势(DragGesture)的基本使用和状态信息 缩放手势(MagnificationGesture)的实现方法 旋转手势(RotationGesture)的应用 三种手势组合方式:同时识别(simultaneously)、顺序识别(sequenced)和排他识别(exclusively) 每种手势都提供了清晰的代原创 2025-08-16 09:47:34 · 390 阅读 · 0 评论 -
30天学会Swift-24:SwiftUI-动画与过渡
本文介绍了SwiftUI中的动画实现方法,包括隐式动画(.animation修饰符)和显式动画(withAnimation函数)。主要内容涵盖:1)基础动画原理和预定义动画曲线;2)视图过渡效果(transition)的实现与组合;3)高级动画技巧如自定义曲线、延迟重复动画以及matchedGeometryEffect的几何匹配动画。文章通过代码示例演示了各种动画效果,并提供了四个实践练习项目,帮助开发者掌握按钮动画、进度条、卡片翻转和自定义过渡等常见场景的实现。最后提出三个思考题,引导开发者深入理解动画选原创 2025-08-16 09:46:50 · 543 阅读 · 0 评论 -
30天学会Swift-23:SwiftUI-数据流与环境
SwiftUI提供了多种数据流管理工具,包括@State、@Binding、@ObservedObject、@StateObject和@EnvironmentObject。@State用于视图内部简单值类型数据管理,@Binding实现父子视图双向绑定。@ObservedObject和@StateObject用于管理引用类型数据,前者不拥有数据,后者拥有数据所有权。@EnvironmentObject通过环境共享数据,避免手动传递。这些属性包装器配合ObservableObject和@Published,能原创 2025-08-16 09:46:05 · 802 阅读 · 0 评论 -
30天学会Swift-22:SwiftUI-列表与导航
摘要:本文介绍了SwiftUI中列表和导航的核心功能,包括:1)使用List和ForEach创建静态/动态列表;2)通过NavigationView和NavigationLink实现页面导航;3)数据传递方法;4)列表的删除、移动等编辑功能;5)列表样式设置。最后提供了联系人列表的实践练习,帮助掌握这些功能在实际开发中的应用。原创 2025-08-16 09:45:13 · 382 阅读 · 0 评论 -
30天学会Swift-21:SwiftUI入门
本文介绍了SwiftUI框架的核心概念和使用方法。主要内容包括:1)SwiftUI的声明式UI特性和跨平台优势;2)项目结构和基本视图(Text/Image/Button)的使用;3)VStack/HStack/ZStack等布局容器;4)@State和@Binding状态管理机制;5)修饰符的链式调用。通过创建个人信息卡片、交互式按钮和双向绑定等实践练习,帮助开发者掌握SwiftUI的基础应用。思考题探讨了声明式UI的优势及状态管理机制的作用。原创 2025-08-16 09:44:29 · 1061 阅读 · 0 评论 -
30天学会Swift-20:并发编程-Actors与Async/Await
本文介绍了Swift 5.5+引入的结构化并发编程模型。主要内容包括:1)async/await语法使异步代码编写更直观;2)Actor模型通过隔离机制解决数据竞争问题;3)Task和TaskGroup管理并发任务;4)Sendable协议确保跨并发域类型安全。文中通过银行账户和图片下载等示例,展示了如何编写安全可靠的并发代码。这些新特性简化了Swift并发编程,提高了代码可读性和安全性。原创 2025-08-16 09:43:38 · 952 阅读 · 0 评论 -
30天学会Swift-19:并发编程-GCD与Operation
本文介绍了iOS并发编程的核心技术,包括GCD和OperationQueue。主要内容涵盖:1)GCD的串行/并行队列、主队列、全局队列的使用方法;2)同步/异步执行、延迟执行的实现;3)DispatchGroup和DispatchSemaphore的任务同步机制;4)Operation和OperationQueue的高级功能,如任务依赖、取消和并发控制。文章还对比了GCD与OperationQueue的特性差异,帮助开发者根据需求选择合适的并发方案。原创 2025-08-16 09:42:59 · 780 阅读 · 0 评论 -
30天学会Swift-18:内存管理-ARC
本文介绍了Swift中的自动引用计数(ARC)机制,包括其工作原理、循环强引用问题及解决方案。ARC通过跟踪类实例的强引用计数来自动管理内存,当引用计数为零时释放实例。循环强引用会阻止内存释放,可通过weak(弱引用)和unowned(无主引用)解决。文章还说明了闭包中的循环引用问题,建议使用捕获列表配合weak/unowned来避免。最后提供了实践练习,帮助理解如何识别和解决循环引用问题。原创 2025-08-16 09:41:58 · 928 阅读 · 0 评论 -
30天学会Swift-17:访问控制(Access Control)
访问控制限制了代码中不同部分(如类、结构体、枚举、属性、方法、初始化器等)的可见性。它有助于封装代码,隐藏实现细节,并确保代码的稳定性和安全性。访问级别定义模块内导入模块内可继承/重写 (外部)open✅✅✅public✅✅❌internal✅❌❌仅当前文件❌❌private仅当前声明❌❌。原创 2025-08-16 09:40:59 · 994 阅读 · 0 评论 -
30天学会Swift-16:扩展(Extensions)
本文介绍了Swift中扩展(Extensions)的核心概念和使用方法。主要内容包括:1)扩展的基本语法和用途,允许为现有类型添加新功能而无需修改源代码;2)具体应用场景:添加计算属性、实例方法/类型方法、初始化器、下标;3)使现有类型遵循新协议的能力。通过多个代码示例(如为Double添加单位转换、为Int添加奇偶判断等)展示了扩展的实际应用,并提供了实践练习题目(字符串回文判断、数组安全访问等)。最后提出思考题探讨扩展与继承的区别、限制条件(如不能添加存储属性)以及实际开发中的应用场景。原创 2025-08-16 09:40:09 · 1081 阅读 · 0 评论 -
30天学会Swift-15:错误处理(Error Handling)
Swift错误处理摘要 Swift提供了类型安全的错误处理机制,通过Error协议定义错误类型(通常使用枚举)。使用throw抛出错误,do-catch语句捕获和处理错误。try?将错误转换为可选值,try!强制忽略错误(可能崩溃)。defer语句确保在作用域退出时执行清理代码,无论是否发生错误。错误处理机制强调可预测性,适用于网络请求、文件操作等可能失败的操作场景。原创 2025-08-11 23:00:44 · 516 阅读 · 0 评论 -
30天学会Swift-14:泛型(Generics)
本文介绍了Swift中泛型编程的核心概念与应用。主要内容包括:1)泛型简介,说明泛型如何提高代码复用性和类型安全性;2)泛型函数的定义与使用,通过swapTwoValues示例展示类型参数的应用;3)泛型类型的实现,以Stack结构体为例;4)类型约束机制,演示如何通过协议或类限制类型参数;5)关联类型在协议中的使用,结合Container协议案例说明。文章还提供了实践练习,包括编写泛型函数来打印数组和获取中间元素。这些内容全面覆盖了Swift泛型编程的基础知识,帮助开发者编写更灵活、高效的代码。原创 2025-08-07 23:08:57 · 476 阅读 · 0 评论 -
30天学会Swift-13:协议(Protocols)
本文系统介绍了Swift协议的基本概念与使用方法。主要内容包括:1)协议定义语法及类型遵循方式;2)协议属性与方法要求及实现规范;3)协议作为类型的使用场景;4)协议继承与组合的语法及应用。通过实践练习(如定义Vehicle协议、实现Togglable协议等)帮助掌握协议编程技巧,并提供了协议与类继承的对比思考。适合Swift开发者系统学习协议特性,提升面向协议编程能力。原创 2025-08-07 23:08:18 · 505 阅读 · 0 评论 -
30天学会Swift-12:初始化与反初始化
本文介绍了Swift中的初始化机制,包括初始化器(Initializers)的基本概念和使用方法。主要内容涵盖:1)默认初始化器和成员逐一初始化器的语法;2)指定初始化器(Designated Initializers)和便利初始化器(Convenience Initializers)的区别及调用规则;3)两段式初始化的执行流程;4)可失败初始化器(Failable Initializers)的定义和应用场景;5)反初始化器(Deinitializers)的作用和调用时机。通过代码示例展示了各类初始化器的实原创 2025-08-07 23:07:40 · 487 阅读 · 0 评论 -
30天学会Swift-11:继承与多态
Swift面向对象编程:继承与多态 本文介绍了Swift中面向对象编程的核心概念——继承与多态。主要内容包括: 继承机制:通过基类(Vehicle)和子类(Bicycle/Tandem)展示类层次结构的构建 方法重写:使用override关键字重写父类方法和属性,包括属性观察器的使用 访问控制:super关键字调用父类实现,final关键字防止重写 多态特性:通过Animal父类和Dog/Cat子类演示运行时多态行为 实践练习部分要求实现Shape类及其子类Circle/Rectangle,重点练习继承、方原创 2025-08-07 23:07:04 · 422 阅读 · 0 评论 -
30天学会Swift-10:属性与方法进阶
本文介绍了Swift中的四个重要特性:延迟存储属性、类型属性、类型方法和下标。延迟存储属性(lazy)允许属性在首次使用时才初始化,适用于计算复杂或不一定会用到的属性。类型属性(static/class)属于类型本身而非实例,类型方法同理。下标(Subscripts)则可以通过索引访问集合元素,支持读写操作。文章通过代码示例展示了这些特性的具体用法,并建议实践练习来巩固学习,包括创建带延迟加载的ImageLoader类、使用类型属性和方法的AppConfiguration类等。这些特性能够提高代码的灵活性和原创 2025-08-07 23:06:26 · 339 阅读 · 0 评论 -
30天学会Swift-09:枚举
Swift中的枚举(enum)是强大的类型,可以定义一组相关值并支持关联值、原始值和递归特性。枚举成员可以关联不同类型的数据(如Barcode示例),也可以使用原始值(字符串、数字等)作为默认值。递归枚举(如ArithmeticExpression)通过indirect关键字支持自身类型的关联值,适用于树形结构等场景。此外,枚举还能定义方法、遵循协议,并通过switch进行模式匹配。实践练习包括定义交通灯枚举、添加关联值和原始值等操作,帮助掌握枚举的核心用法。原创 2025-08-07 23:05:44 · 346 阅读 · 0 评论 -
30天学会Swift-08:结构体与类
本文介绍了Swift中结构体(struct)与类(class)的核心概念。主要内容包括:1)结构体和类的定义语法及实例创建;2)两者关键区别:结构体是值类型(拷贝行为),类是引用类型(共享引用);3)常用属性类型:存储属性和计算属性的定义与用法;4)实例方法和类型方法的使用;5)属性观察器(willSet/didSet)的实现。文章强调Swift鼓励优先使用结构体,仅在需要继承、引用共享等特性时使用类,并提供了详细的代码示例说明各类语法特性。原创 2025-08-07 23:05:09 · 501 阅读 · 0 评论 -
30天学会Swift-07:函数
Swift函数基础摘要:本文介绍了Swift中函数的定义与使用,包括基本语法、参数传递、返回值处理等核心概念。主要内容涵盖:1)函数定义使用func关键字,支持参数和返回值;2)参数标签和外部参数名的使用技巧;3)可变参数和输入输出参数的特殊用法;4)函数类型及其高级应用场景。文章通过示例代码演示了不同类型函数的编写方式,如无参函数、多返回值函数等,并提供了实践练习建议。适合初学者掌握Swift函数编程基础。原创 2025-08-07 23:04:32 · 440 阅读 · 0 评论 -
30天学会Swift-06:可选类型 (Optionals)
Swift中的可选类型(Optional)用于安全处理可能缺失的值,通过?声明。强制解包(!)风险大,应优先使用可选绑定(if let/guard let)安全解包。隐式解包可选类型(!)适用于初始化后必有值的情况。可选链(?.)能优雅地处理嵌套可选值访问。这些机制共同保障了Swift代码的类型安全性。原创 2025-08-07 23:03:52 · 362 阅读 · 0 评论 -
30天学会Swift-05:集合类型 - 集合 (Set)
本文介绍了Swift中集合(Set)的基本概念和使用方法。主要内容包括:1) 集合的特点:唯一性、无序性和可哈希性;2) 集合的创建与初始化方式;3) 集合元素的访问、修改、插入和删除操作;4) 集合遍历方法;5) 常用的集合操作,如并集、交集、差集和对称差集;6) 集合间的关系判断。文章还提供了实践练习和思考题,帮助读者巩固所学知识。通过学习,可以掌握Swift集合的基本操作,理解其适用场景和优势。原创 2025-08-07 23:03:13 · 531 阅读 · 0 评论 -
30天学会Swift-04:集合类型 - 数组与字典
本文介绍了Swift中数组和字典的基本使用。主要内容包括:数组的创建、初始化、访问修改和遍历方法;字典的键值对操作、增删改查和遍历技巧。通过具体代码示例展示了空数组/字典创建、默认值设置、字面量初始化,以及使用下标语法和内置方法进行元素操作。同时讲解了如何利用for-in循环遍历集合数据,并获取键值或索引。最后提供了创建书籍列表的实践练习。原创 2025-08-07 23:02:36 · 502 阅读 · 0 评论 -
30天学会Swift-03:字符串与字符
Swift字符串操作指南摘要:本文系统介绍了Swift中字符串和字符的核心操作,包括字符串的创建(单行/多行字面量)、初始化、拼接与插值,以及字符遍历方法。重点讲解了基于Unicode的字符串索引机制,包括字符串修改(插入/删除)和比较操作(相等性/前缀后缀检查)。文章还提供了5个实践练习,涵盖字符串操作、Unicode遍历和协议检查,并提出了3个关于字符串索引设计、性能差异和类型本质的思考题,帮助开发者深入理解Swift字符串的特性与最佳实践。原创 2025-08-07 23:01:59 · 471 阅读 · 0 评论 -
30天学会Swift-02:运算符与控制流
本文介绍了Swift语言中的基本运算符和控制流结构。主要内容包括:1) 算术、比较、逻辑、赋值和区间运算符的使用;2) 条件控制语句if-else和switch的应用;3) 循环控制语句for-in、while和repeat-while的实现;4) break和continue控制循环流程的方法。文章通过代码示例详细展示了各种语法结构的使用场景,并提供了实践练习帮助巩固知识点。最后提出了几个思考题,帮助理解不同控制结构的选择依据。适合Swift初学者系统学习基础语法和控制流程。原创 2025-08-07 23:01:16 · 440 阅读 · 0 评论 -
30天学会Swift-01:Swift入门与基本语法
本文介绍了Swift语言的基础知识,包括其安全、快速、现代的编程特点,以及Xcode开发环境的安装配置。重点讲解了常量(let)和变量(var)的区别与使用原则,详细说明了整型、浮点型、布尔型和字符串等基本数据类型的使用方法。还介绍了Swift的类型推断机制和类型安全特性,以及print()函数输出和注释的写法。最后提供了实践练习和思考题,帮助学习者巩固知识,并推荐了官方学习资源。原创 2025-08-07 23:00:25 · 541 阅读 · 0 评论
分享