验证美国邮政编码(快速3)

今天,我正在进行一个副项目,该项目要求用户输入邮政编码才能找到本地餐馆。 我考虑过如何验证他们的邮政编码条目,以查看它们是否实际上是真实的美国邮政编码。

在进入代码之前,请注意一些有关邮政编码的有趣事实:

  • ZIP代表“区域改善计划”
  • 萨克斯第五大道的制鞋部门有自己的邮政编码:10022
  • 由于邮件的增加,标准的5位数字长度是在1963年实施的。

这是我创建iOS应用程序的方法,该应用程序检查给定的5位数字是否为有效的美国邮政编码:

步骤1:获取有效的美国邮政编码数据(以CSV格式)。

我使用了从美国邮政编码下载的Excel电子表格数据。 我选择了“个人”帐户(即免费),因为我会将数据用于博客目的。

邮政编码数据库–邮政编码列表
下载Excel / CSV /电子表格格式的邮政编码列表,包括州,城市,县,区号,纬度… www.unitedstateszipcodes.org

注册免费/个人帐户后,我下载了一个zip_code_database.csv文件(如果需要,您也可以将其下载为.xls)。

步骤2:将CSV数据转换为JSON。

我使用网站Convert CSV将CSV转换为JSON。

CSV到JSON转换器
将CSV数据转换为JSON www.convertcsv.com

在网站上,要生成输出,我选择了“ CSV到JSON列数组”转换类型进行下载。

单击“下载结果”后,我收到了一个名为convertcsv.json的文件

步骤3:重命名JSON并拖入XCODE项目。

我将文件重命名为zipcodes.json

步骤4:编写代码以读取JSON邮政编码。

我创建了一个名为ZipCodeStore.swift的文件来保存此逻辑。

1-我编写了一个静态函数,该函数将发送带有一个Ints数组的完成闭包(将是有效的邮政编码!)

2 —我在项目中解包json文件的URL位置,并通过资源名称和扩展名类型对其进行标识。

3-我将此文件转换为数据。

4 —我将此数据序列化为JSON对象。

5 —我将json转换为适当的类型[String:[Int]]。

6 —我访问json中的“ zip”键以获取我的邮政编码数组。

7 —我使用zipArray设置完成。

步骤5:构建UI。

在情节提要中,我拖了一个文本字段,一个按钮和一个标签。

我确保仅使用数字键盘输入了文本字段的文本。

然后,我建立了从Storyboard到ViewController.swift文件的插座和动作连接。

8 —这些是上述视图元素的出口。

步骤6:使用邮递区号资料建立本机阵列。

9 —创建一个Int的zipArray,它将保存从json返回的邮政编码。

10 —在.readJson函数上调用完成时,我将zipArray与返回的邮政编码数组(邮政编码)一起注入。

步骤7:处理轻按按钮的逻辑。

11 —解开文本字段的文本(该文本字段应仅由用户输入数字)并将其强制转换为Int。

12 —我的isValid(:)函数接收用户输入的邮政编码(Int),并检查zipArray是否包含此值。 这样,responseLabel文本将更改为“有效邮政编码!”,否则将更改为“尝试其他邮政编码”。

在此处查看(请原谅我在后台观看教父2的声音):

您可以在这里找到该项目的仓库。