专栏首页韦弦的偶尔分享100 Days of SwiftUI —— Day 19:挑战日

100 Days of SwiftUI —— Day 19:挑战日

今天,您将面临第一个挑战之日,也就是要求您使用到目前为止所学的知识从头开始构建全新应用的一天。这可能会让您感到惊讶,因为您可能认为到目前为止您还没有学到太多。好吧,让我解释一下...

100 Days of SwiftUI 是我编写的第二个100天课程,虽然我知道最初的 100 Days of Swift 非常受欢迎并为很多人提供了帮助,但我之后肯定会感到“如果我再做一次,这就是我要改变的东西……”

其中一件事情就是回去,在Swift的最初几天增加更多的虚拟聊天,以帮助人们真正地充分利用这些基础知识。但是第二个变化是您今天要遇到的变化:我想让您更快地编写自己的项目。

在最初的100天中,人们完成了第一个项目,然后完成了第二个项目,然后是第三个项目,然后才被要求从头开始编写自己的应用程序。虽然效果很好,但我回想起来,在没有真正巩固基础的情况下进行第二和第三个项目并不理想。

这将我们带到了今天:您的第一个挑战日,您将从头开始构建一个完整的应用程序。不用担心:此项目是根据您到目前为止所学的知识专门选择的,因此,项目1已经涵盖了您需要了解的所有内容。

你的挑战

您需要构建一个处理单位转换的应用程序:用户将选择一个输入单位和一个输出单位,然后输入一个值,然后查看转换的输出。

您选择哪种单位取决于您,但是您可以选择以下单位之一:

  • 温度转换:用户选择摄氏度,华氏度或开氏度。
  • 长度转换:用户选择米,公里,英尺,码或英里。
  • 时间转换:用户选择秒,分钟,小时或天。
  • 体积转换:用户选择毫升,升,杯,品脱或加仑。

如果要进行长度转换,则可能有:

  • 输入单位的米,千米,英尺,码或英里的一个分段控件。
  • 第二个分段控件,用于输出单位的米,公里,英尺,码或英里。
  • 用户在其中输入数字的文本输入框。
  • 文本视图,显示转换结果。

因此,如果您选择米为源单位,英尺为输出单位,然后输入10,则输出为32.81。

提示

您已经知道完成该项目所需的一切,但是如果遇到问题,我会提供一些可能有用的提示。

首先,我们所有的单位转换都是简单的数学运算,但是您不应该尝试编写将转换从每个源单位转换为另一个单位的转换。一个更好的主意是将用户的输入转换为单个基本单位,然后从那里转换为目标单位。

因此,与其编写代码以将公升转换为毫升,从公升转换为杯,从公升转换为品脱,诸如此类,一个更好的主意是将用户的输入转换为毫升(最低公分母),然后从那里到他们想要的任何输出单位。

即使您可以使用简单的算术绝对完成此项目,您也可能想知道Apple确实为我们提供了进行单位转换的专用功能——请参阅我的文章如何使用Unit和Measurement转换单位。但是,我要重申的是,这对于完成我们的项目并不是必须的:只需将输入乘以2.11338,就可以从升转换为品脱。

由于这里有三个用户值——他们的输入数字,他们的输入单位和他们的输出单位——您需要具有三个@State属性来存储它们。您将需要一个文本字段,两个分段控件,一个文本视图来显示输出,仅此而已。

因此,请继续并立即开始。不必担心是否需要返回WeSplit项目查看——这是完全正常的,并且是学习过程的一部分。

祝好运!你可以这样做。完成后,告诉其他人:您已经构建了另一个SwiftUI应用程序,而这个应用程序完全是由您设计的。

您应该为自己的成就感到自豪。

我自己写了一个简单的。。。确实,编写边找原来的课程。。。

挑战打卡

< Previous: WeSplit(三)

Next: 猜国旗(一)>

赏我一个赞吧~~~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 100 Days of SwiftUI —— Day 6:闭包 (上)

    振作起来,因为今天我们将介绍在Swift中许多人难以理解的第一件事。请记住弗里普·威尔逊定律:“如果不在抽奖机上放些钱进去,就不要期望赢得大奖。(you can...

    韦弦zhy
  • Swift 有效的字母异位词 - LeetCode

    那么题目就变成了判读两个字符串的组成元素是否是一样的,我们用两个数组获取字符串的所有组成元素,然后排序后比较是否相等:

    韦弦zhy
  • Hacking with iOS: SwiftUI Edition - BetterRest 项目——使用Core ML模型预测结果

    与SwiftUI简化用户界面开发一样,Core ML简化了机器学习。有多容易?好吧,一旦你有了一个训练有素的模型,你就可以在两行代码中得到预测——你只需要发送应...

    韦弦zhy
  • 麻省理工学院通过新型人工智能系统用电脑可以合成新材料

    即使在缺少试验数据的情况下,设备学习系统也可以在材料“配方”中找到相应的模式。 上个月,麻省理工学院的三位材料科学家及其同事发表了一篇论文,讲述了一种新型人工智...

    企鹅号小编
  • 网页版深度学习模型编辑器,搭建运行样样都行,还能3D可视化

    不用下载任何客户端应用、不用装任何插件、甚至连数据集都不用下载,直接在网页端就可以搭建、训练、运行神经网络,甚至还是3D可视的。

    量子位
  • 基于Graylog的容器化应用日志管理

    当一个容器启动的时候,它其实是docker deamon的一个子进程,docker daemon可以拿到容器里面进程的标准输出,然后通过自身的LogDriver...

    CodingDiray
  • 基于 Go 语言编写在线论坛(一):整体设计与数据模型

    前面学院君花了较多的篇幅介绍第三方路由库 gorilla/mux 的使用,想必大家对 Go Web 编程请求处理与分发有了大致的了解。接下来,学院君准备通过一个...

    学院君
  • Drive.ai融资5000万美元 吴恩达加入董事会与太太重逢

    大数据文摘
  • SoundHound与本田合作,加速开发AI语音助手

    会话智能技术的领先创新者SoundHound宣布与本田建立战略合作伙伴关系,以加速AI语音助手的发展。

    AiTechYun
  • 从锅炉工到AI专家(2)

    俺踏月色而来

扫码关注云+社区

领取腾讯云代金券