Hacking with iOS: SwiftUI Edition - 纸杯蛋糕项目——挑战

Hacking with iOS: SwiftUI Edition - 纸杯蛋糕项目——挑战_第1张图片
cake - 韦弦zhy

纸杯蛋糕:圆满完成

希望该项目向您展示了如何利用您所了解的技能,SwiftUI的表单,选择器,步进器和导航,并将其构建到一个应用程序中,该应用程序将所有用户数据发送到服务器并处理响应。

您可能还没有意识到这一点,但是您在该项目中学习的技能是绝大多数iOS开发人员最重要的技能:获取用户数据,将其发送到服务器并处理响应可能占到了不重要的一半应用程序。是的,发送什么数据以及如何使用它更新UI的方法千差万别,但是概念是相同的。

在继续之前,还有最后一件事:在此项目中,您使用DispatchQueue.main.async()将工作推回主线程。这是 Apple 的 Grand Central Dispatch(GCD) 框架的一部分,该框架是用于跨多个线程运行工作的大型强大框架。恐怕我们不会在这里详细介绍它,但是我已经在其他地方广泛介绍了它——有关更多信息,请参阅经典版的Hacking with Swift 项目 9。

回顾你学到的

任何人都可以学完整个教程,但是要记住所教的内容需要付出实际的工作。确保您从这些教程中获得尽可能多的收益是我的职责,因此,我准备了简短的评论以帮助您检查自己的学习情况。
点击此处回顾您在这个项目学到的内容

挑战

最好的学习方法之一就是尽可能多地编写自己的代码,因此,您应该尝试通过以下三种方式扩展此应用,以确保您完全了解正在发生的事情。

  1. 我们的地址字段包含任何内容(即使只是空白),也被视为有效。改进验证以确保纯空格字符串无效。
  2. 如果我们对placeOrder()的调用失败, 例如,如果没有互联网连接——将向用户显示信息提示。要对此进行测试,只需在Mac上禁用WiFi,这样模拟器也不会连接。
  3. 对于更具挑战性的任务,请查看是否可以将我们的数据模型从一个类转换为一个结构体,然后围绕它创建一个ObservableObject类包装器,该包装器将被传递。这将导致您的类具有一个@Published属性,该属性是其中的数据结构体,并且应该使在结构上支持Codable更加容易。

译自Cupcake Corner: Wrap up

纸杯蛋糕项目(二) Hacking with iOS: SwiftUI Edition SwiftUI:使用 @Binding 创建自定义组件

赏我一个赞吧~~~

你可能感兴趣的:(Hacking with iOS: SwiftUI Edition - 纸杯蛋糕项目——挑战)