我在项目的单独Swift文件中创建了最简单的自定义类:
class Foo
{
init()
{
println("I made a foo.")
}
}
然后,在同一个项目的一个操场上,我试过了
var x = Foo()
Xcode似乎不喜欢这样,并告诉我'Foo'是一个未解析的标识符 . 我对操场如何适应项目结构的其余部分感到困惑,因为我的项目中的任何其他Swift文件都可以解决'Foo'而没有问题 .
如何让我的游乐场能够使用我在项目中的其他Swift文件中定义的自定义类?我已经尝试为构建目标命名产品模块并将其导入到操场中,但没有成功:操场无法识别产品模块的名称 .
在此先感谢您的帮助 . 我知道这很简单 .
4 回答
他们不能 . 游乐场是独立的 . 这有望在未来发生变化 .
编辑:从Xcode 6.3开始,Playgrounds现在可以包含支持代码 . 他们仍然无法在同一个项目中看到其他代码,但可以将代码添加到Playground的支持文件夹中,该文件夹可以在操场内使用 . 有关详细信息,请参阅the Swift blog .
有两种方法可以在Playground中使用项目代码
Playground's Sources Folder
是的,在Xcode 6.3 Beta 3中(希望未来):
打开一个新的游乐场并按cmd 1查看左侧窗格,然后将文件拖到
source
文件夹中以在操场中使用 .注意:
源文件夹中的文件被编译为框架,这意味着如果您希望在操场中访问类,函数等,则必须将它们显式标记为
public
.资料来源:release blog
Compile Project Into Framework
如果尚未将项目移动到工作区 . (文件 - >另存为工作区)可以解决问题
将框架目标添加到项目中
构建框架
确保要访问的文件已添加到框架目标中
将游乐场添加到 workspace (不是项目)
使用
@testable import YourFrameworkName
在操场上访问代码
如果你想check it out,我在这里写了一篇更详细的内容 .
是 . 我首先在Sources目录中添加一个类文件 . 我公开了一切:
班
init
成员
经过多次尝试,没有任何效果 . XCode崩溃了,重新打开后,它们都像魅力一样 .
在Xcode 10的Project Navigator中:
将源代码文件添加到playground的Sources文件夹中 .
将文件从playground的Sources文件夹拖到项目中的所需位置(您应该会看到小"plus in a circle"图标出现 .
结束拖动,然后在“添加文件”对话框中取消选中"copy if needed"
源文件现在“生活”在游乐场包中;项目引用它(您可以使用文件检查器验证) .
我反过来尝试过:文件位于项目文件夹中,并在playground的Sources文件夹中引用,但它不起作用;我最终得到了两份源代码文件 .