抓住铁锹和桶,在Xcode中有一个更好的游乐场

测试代码和功能是构建任何应用程序的重要组成部分。 但是,不幸的是,在构建阶段进行测试有时可能很困难和/或耗时。 通常,我在编写代码时进行一些快速测试和故障排除的方法是在以下功能下实例化App Delegate文件中的对象。

然后,我将把打印语句放在类的函数或App Delegate中。 程序启动后,将执行此功能以创建每个对象的实例,然后查看控制台上打印的内容以评估是否实现了所需的功能。 但是,这很耗时,而且直言不讳,令人讨厌。

我要采取的另一种方法是将文件复制到操场上并在其中进行测试。 这很方便,因为它将在右侧显示进度和信息。 在功能和测试方面,它比应用程序委托提供了更多功能。 但是,这很不方便,因为一旦应用程序变得比几个文件大,您就必须复制很多副本。 此外,Playground文件通常按其写入顺序进行编译和运行,并且一行代码不知道在其下写入的任何内容。 因此,一旦程序变得有些复杂,就会引入一些问题。

知道有一种方法可以在Xcode项目中直接创建运动场文件,我认为必须有一种方法可以使该项目中的所有内容在该运动场中可用,并且肯定有! 随意打开Xcode,然后逐步学习,并逐步分享一些代码。

首先,让我们创建并命名一个新项目。 完成此操作后,右键单击左侧文件结构中的任意位置,然后单击“新建文件”,就像添加新的swift文件一样。 从这里选择游乐场,如下所示。

让我们创建更多文件,以便我们也可以进行一些测试。 请参阅下面的示例。

现在我们已经创建了一些测试文件,让我们进入我们的操场并尝试创建一个人。 您会注意到在自动完成中没有可用的初始化程序,并且您将收到类似以下的错误。

仅仅因为游乐场存在于Xcode项目中并不能使项目中的所有内容都可用。 我们将必须在项目中创建一个框架,然后将该框架导入操场。 要创建框架,请单击文件->新建->目标。 从菜单中选择Cocoa Touch Framework,然后单击下一步。

命名框架,然后单击完成。 保留所有其他选项不变。 单击完成之前,您的屏幕应如下所示。

现在已经创建了框架,我们必须将项目中的文件添加到其中,以便在导入框架时可以对其进行访问。 如果单击“个人”文件,您将在文件检查器中注意到创建的框架现在可用作目标成员身份。

选中框架旁边的框。 对性别和狗也要这样做。 这将包括框架中“人”,“性别”和“狗”文件的内容。 现在,让我们跳到游乐场文件。 需要像导入其他任何框架一样导入该框架。 为此,您需要在操场文件的顶部放置“ @testable import FrameworkName” 。 现在,您可以在操场上使用框架中包含的所有项目。 让我们尝试测试一些东西。

成功! 该项目的课程现在在操场上可用。 一旦对框架中包含的任何项目进行了更改,这些更改将不会在操场上反映出来,直到代码被编译。 通常,在框架方面,“干净”和“构建”是您的好朋友,因此,如果一切工作不正常,这应该是进行故障排除的第一步。

此外,在将新文件添加到项目中时,可以在创建文件时通过选择适当的目标将它们添加到框架中。 让我们向项目添加一个汽车类。 通过在DemoKit目标旁边放置一个对勾标记,汽车类将立即添加到框架中。

现在,我们将一些代码添加到car类中,然后进行构建并查看它是否在Playground文件中可用。 另外,让我们更新Person类,使其包含类型为“ Car?”的可变汽车。

由于我们在创建文件时选中了该框,因此以后无需添加它。 可以随时在框架中添加和删除项目。 此外,可以创建多个框架,因此您可以选择要导入到Playground文件中的内容。

现在,在新的和经过改进的满载游乐场文件中获得有趣的测试代码