SwiftUI学习100天(Day59 - 项目 12,第二部分)

原创链接:https://www.hackingwithswift.com/100/swiftui
以下内容仅供学习参考:

你准备好迎接更多挑战了吗?
美国歌手兼词曲作者克里斯蒂娜格里米曾说过,“人不是天生强壮的;人们一点一点地变得强大,遇到困难的情况,学会不逃避。” 优秀的编码员也是如此:当你读了一年的书时,并没有什么神奇的开关会被轻弹,而是随着你面对——并解决——越来越困难的问题,你的技能会随着时间的推移而缓慢增长。
我一直鼓励你解决这些问题,因为编写自己的代码并找到自己的解决方案很重要。一开始通常会出现一些空白页综合症——你茫然地盯着屏幕,不知道从哪里开始。但这没关系,事实上这是意料之中的。你练习得越多,就会越善于为自己找出解决方案,而今天是朝着该目标迈出的又一步。
今天你应该完成项目 12 的总结章节,完成它的回顾,然后完成它的所有三个挑战。

核心数据:总结
Core Data 乍一看似乎是一个枯燥的话题,但它在构建应用程序时非常有用——你已经看到它如何使用相对简单的代码添加、删除、排序、过滤等等。是的,Swift 中的一些部分有点模糊——例如NSPredicate
,可以做一些改进,而且NSSet
处理起来从来都不是一件愉快的事——但是只要我们做一点工作,这就不再是一个问题了。
也许关于 Core Data 最重要的事情是它保证适用于所有 Apple 平台上的所有应用程序。这意味着无论你有什么需要,你都可以使用它:也许它是为了保存重要数据,也许它只是你下载内容的缓存;没关系,因为 Core Data 会为你很好地管理它。
回顾你学到的东西
任何人都可以听完教程,但要记住所教的内容需要实际工作。我的工作是确保你从这些教程中获得尽可能多的知识,因此我准备了一个简短的回顾来帮助你检查你的学习情况。
单击此处查看你在此项目中学到的知识:
https://www.hackingwithswift.com/review/ios-swiftui/core-data

挑战
最好的学习方法之一是尽可能多地编写自己的代码,因此你应该尝试通过以下三种方式扩展此应用程序,以确保你完全理解正在发生的事情。
所有这三个任务都需要你修改FilteredList
我们制作的视图:
让它接受一个字符串参数来控制应用哪个谓词。你可以使用 Swift 的字符串插值将它放在谓词中。
将谓词字符串参数修改为一个枚举,例如
.beginsWith
,然后将该枚举解析为初始化程序中的一个字符串。使
FilteredList
接受一个对象数组SortDescriptor
以在其获取请求中使用。

提示:如果你使用的是 FilteredList
的通用版本
,则你的排序描述符是 SortDescriptor<T>
类型
。如果你使用的是更简单的非通用版本,则你的排序描述符是SortDescriptor<Singer>
.