SwiftUI学习100天(Day52 - 项目 10,第四部分)

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

我们在这里开展的每个新项目都会单独向你介绍新概念,然后在真实应用程序的上下文中再次介绍,目的是在不同情况下向你展示同一件事两次,以帮助它更深入地进入你的长期记忆。
但是今天,随着我们的应用程序的完成,是时候进行长期过程的另一个重要部分了:测试你的记忆力,以及一些帮助你走得更远的挑战。不管你喜不喜欢,这一步很重要——正如宇航员约翰·杨曾经说过的,“进步最大的敌人是知识的幻觉。”
相信我:知道你理解某件事比你认为你理解它要好得多。这就是为什么我不断地向你灌输要点:我希望你厌倦到Form
几乎可以自己编写这门课程。我想让你看到Codable
并确切地知道它的含义以及它在幕后是如何工作的,永远不要认为它有某种魔力。
我们在这里建立的所有这些基础将持续多年,这意味着你在此基础上建立的一切——你在未来学习或创造的一切——不是建立在对你读过一次的东西的一知半解之上,而是相反,你可以拥有真正、持久的信心。
今天你应该完成项目 10 的总结章节,完成它的回顾,然后完成它的所有三个挑战。

纸杯蛋糕角:总结
希望这个项目向你展示了如何运用你所知道的技能——SwiftUI 的表单、选择器、步进器和导航——并将它们构建到一个应用程序中,该应用程序将所有用户数据发送到服务器并处理响应。
你可能还没有意识到这一点,但你在这个项目中学到的技能是绝大多数 iOS 开发人员最重要的技能:获取用户数据,将其发送到服务器,并处理响应可能占重要任务的一半存在的应用程序。是的,发送什么数据以及如何使用它来更新 UI 千差万别,但概念是相同的。
回顾你学到的东西
任何人都可以听完教程,但要记住所教的内容需要实际工作。我的工作是确保你从这些教程中获得尽可能多的知识,因此我准备了一个简短的评论来帮助你检查呢的学习情况。
单击此处查看您在此项目中学到的知识:https://www.hackingwithswift.com/review/ios-swiftui/cupcake-corner

挑战
最好的学习方法之一是尽可能多地编写自己的代码,因此你应该尝试通过以下三种方式扩展此应用程序,以确保你完全理解正在发生的事情。
我们的地址字段目前被认为是有效的,如果它们包含任何东西,即使它只是空白。改进验证以确保纯空格字符串无效。
如果我们调用
placeOrder()
失败——例如,如果没有互联网连接——为用户显示信息警报。要对此进行测试,请尝试注释掉request.httpMethod = "POST"
代码中的行,这会强制请求失败。对于更具挑战性的任务,看看你是否可以将我们的数据模型从一个类转换为一个结构,然后
ObservableObject
围绕它创建一个类包装器来传递。这将导致你的类具有一个@Published
属性,即其中的数据结构,并且应该使Codable
对该结构体的支持更加容易。


