验证美国邮政编码(快速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的声音):
您可以在这里找到该项目的仓库。