SwiftData
在 WWDC23 上,Apple 推出了新框架 SwiftData,这是一个专注于使用声明式代码持久化数据的框架。SwiftData 使用 Swift 的新宏功能,旨在与 SwiftUI 配合使用,代替 CoreData。使用 @Model 宏定义模型架构。使用 ModelContainer 模型容器来控制持久性的行为。使用 ModelContext 模型上下文来对数据进行操作。
Swift Macros
Swift 宏在 WWDC 2023 的 Swift 5.9 版本中引入,简单来说它允许我们在编译时生成重复代码,它还允许我们在编译之前动态地操作项目的 Swift 代码,从而允许我们在编译时注入额外的功能,使我们的应用程序的代码库更易于阅读且更高效地编码。按照苹果官方文档,有两种类型的宏。独立宏,声明的时候使用 @freestanding 关键字,使用的时候以标签(#) 开头,并在后边的括号里添加相应的参数,主要作用是代替代码中的内容,比如 #stringify(a + b)。附加宏,声明的时候使用 @attached 关键字,使用的时候以 @ 开头,并在后边的括号里添加相应的参数,主要作用是为声明添加代码,比如 @OptionSet。
Property Wrapper
Swift Property Wrapper 是 Swift 5.1 中引入的一个新特性,它提供了一种强大的方式来封装和抽象属性的行为。Property Wrapper 允许你将属性的获取和设置包装在一个可重用的单元中,这样你就可以在不同的属性上应用相同的逻辑,而不需要重复编写代码。对于属性包装器类型,有两个要求:必须使用属性 @propertyWrapper 进行定义。它必须具有 wrappedValue 属性。
SwiftLint
SwiftLint 是一个用于强制检查 Swift 代码风格和规定的一个工具。通过 Homebrew 全局安装:brew update;brew install swiftlint;swiftlint --version。项目安装:pod 'SwiftLint'。项目安装使用:Targets - Build Phases,点击页面 '+',选择 New Run Script Phase,添加一下脚本 "${PODS_ROOT}/SwiftLint/swiftlint"。然后编译项目,看看是否多了一些警告或错误。
参考文档
- 浅谈 iOS 新框架 SwiftData 的使用:juejin.cn/post/732531…
- 完整介绍一下关于 Xcode 15 新出的宏:mp.weixin.qq.com/s?__biz=Mzg…
- Swift 5 属性包装器Property Wrappers完整指南:juejin.cn/post/684490…
- SwiftLint - Swift 代码检查:juejin.cn/post/709186…