Tag: Parse

使用Swift 3设置Parse-Server

首先,我只是刚刚开始使用Parse-Server,而我一生中从未使用过(或真正听说过)Parse.com。 但是,我确实具有NodeJS和MongoDB的经验。 我的目标读者是那些只想从本地托管的Parse-Server上获取一些数据的人,但是,只要您正确替换了URL,它也可以与托管在任何地方的Parse-Server一起使用。 好的,进入实际设置,转到https://github.com/parse-community/parse-server,然后按照说明将Parse安装到您的系统上。 只要您安装了NodeJS和MongoDB,这应该非常简单,如果您不这样做的话,请转至https://nodejs.org/en/download/和https://www.mongodb.com/download-center并按照他们的指示为您的计算机安装软件。 一旦完成,您将要运行parse-server命令“ parse-server-appId APP_ID-masterKey MASTER_KEY-databaseURI mongodb:// localhost / test” ,据我所知, APP_ID , MASTER_KEY和/ mongodb:// localhost / test的 测试位可以是您想要的任何位。 按下回车键运行该命令,祝贺您,Parse-Server已启动并正在运行! 您可能还需要安装Parse-Dashboard,我假设您确实想使用它,并且说实话我不知道为什么不这样做,这使工作变得更加轻松。 为此,请转到https://github.com/parse-community/parse-dashboard并按照那里的说明进行操作,设置非常简单,只需确保您的appId , masterKey和serverURL (您的serverURL将其输出作为parse-server命令的一部分)与您的Parse-Server匹配,则可以将appName设置为所需的任何名称。 一旦您将其运行到该网址,即会通过命令获得该网址(我的网址是http://0.0.0.0:4040/ )。 您应该看到一个如下所示的界面: 单击您的应用程序名称,然后单击左侧的“创建课程”按钮。 我们将创建一个名为TestClass的类来容纳一些TestObjects。 如下图所示,填写弹出窗口,然后单击“创建类” 下一步,单击“添加新列” ,其显示在屏幕顶部,并将其称为“ object_name” ,如下所示。 现在,您可以单击“添加一行” ,双击“ object_name”字段,然后根据需要命名为“ obj1” 。 您应该最终得到如下所示的内容。 接下来是Swift。 对于Swift而言,我们将使用CocoaPods安装所有内容,以防万一您在转到https://cocoapods.org并向下滚动到Install之前未使用过它们,则需要复制命令并在其中运行终端,则应安装CocoaPods。 接下来,您将要创建一个新的Xcode项目,它将是Single View Application,因此请在iOS下选择该项目,然后单击next。 随意命名项目并创建它,然后退出Xcode并在终端中打开Xcode项目。 运行“ ls”应显示类似下面的内容。 下一步运行“ pod init”创建一个PodFile,再次运行“ […]

JSONParserSwift框架,用于Swift的JSON解析器

服务器以黑白格式(即所有字符串)发送所有JSON数据,并且我们努力按照模型类将其类型转换为各自的数据类型。 现在,在服务器数据和我们的代码之间提供了JSONParserSwift框架,可根据我们的模型类将这些字符串神奇地转换为所需的各个数据类型,而无需编写任何代码。 JSONParserSwift可通过CocoaPods获得。 要安装它,只需将以下行添加到您的Podfile中: 播客“ JSONParserSwift” 要将任何JSON字符串或字典解析为模型,您必须创建一个类并通过ParsableModel对其进行子类ParsableModel 。 现在,您将需要在模型类中创建属性。 您可以使用与json字符串中的键相同或不同的名称来创建这些属性。 如果声明与json中的键同名的属性,则只需声明属性。 但是,如果要为属性和键使用不同的名称,则需要遵循协议JSONKeyCoder并实现方法func key(for key: String) -> String? 如果您必须解析以下JSON字符串: { “ responseStatus”:{ “ statusCode”:101, “ message”:“错误消息” }, “ responseData”:{ “ employeeId”:1002, “ employeeName”:“ Demo Employee”, “ employeeEmail”:“ abc@def.com”, “ employeeDepartment”:“ IT” } } 您将需要如下创建模型: class BaseResponse:ParsableModel { var responseStatus:ResponseStatus? var responseData:员工? }类别ResponseStatus:ParsableModel { var statusCode:NSNumber? var讯息:字串? […]

使用TDD构建JSON解析器

最近,一个朋友需要解析具有自定义格式的文件,并问我如何实现该文件。 我的脑海立刻被我上大学的记忆所淹没。 因此,我回答了他,我首先将制作一个词法分析器,该词法分析器将使用文本文件并生成令牌,然后创建一个状态机,该状态机会将令牌作为状态转换的事件,并且每个转换都会建立一点点解析的结果,直到达到终端状态为止。 我对TDD感兴趣已经有一段时间了,但是没有机会尝试一下,因此这看起来像是一个制作东西的好机会。 在本系列文章中,我将尝试使用TDD创建JSON解析器,并尝试在每个步骤中共享我的尽管流程。 让我们一起学习🙂 在我们开始之前,有一些想法: 我将生产代码和测试代码都写在一个文件中,以便于在它们之间进行切换。 我们将从仅解析没有空格和换行符的JSON文件开始。 我们稍后会处理。 我知道Foundation库有一个非常优化的JSON解析库,我们在Swift 4中添加了Codable协议,涵盖了JSON解析,但是我主要是作为练习来做的。 对于那些不熟悉的人,我将尝试遵循TDD的三个规则: 除非要通过失败的单元测试,否则不允许编写任何生产代码。 您不能编写任何足以使单元测试失败的单元测试。 而编译失败就是失败。 您不能编写任何足以通过一项失败的单元测试的生产代码。 我们首先创建带有单元测试的可可触摸框架项目,然后删除默认测试 对于最退化的情况,第一个测试应该始终是。 因为我们没有在任何地方传递可选参数,所以我们可以创建的最简陋的字符串是空字符串。 现在,我们只说如果解析失败,则返回nil。 现在我们处于红色阶段,我们必须通过此测试通过以使其再次变为绿色。 第一个错误是JSONParser不存在。 因此,我们创建了它。 让我们上一堂课。 现在,对parse方法的调用不存在。 我们可以通过创建一个接受字符串并返回Any的方法解析来解决此问题。 。 空字符串应该失败,因为它不是有效的JSON,因此我们只返回nil 。 在JSON RFC中,它表示JSON可以是以下之一: Boolean , Number , String , Array , Object 。 让我们从最简单的解析器开始:一个布尔值。 首先,我们将解决真实情况: TDD通过最简单的方式产生更好的结果,因此让我们尝试最简单的方法来验证值是否为true 。 这次我们有机会在测试代码中进行一些重构 。 解析器分配开始重复,并且可能会在每个测试中重复。 将其移至设置功能似乎是个不错的机会。 然后我们有: 列表上的下一个是处理错误的布尔值。 我们以与真实案例相同的方式进行测试: 我们做了一个if来检查是否正确 。 […]