GoZ*_*ner 37 xcode swift swift-playground xcode7
我孜孜不倦地遵循Apple的指示将自定义模块导入游乐场,包括这里的说明.然而我得到:
游乐场执行失败:/var/folders/z3/kd0nj4ln1rgcpm8bdz7067wh0000gs/T/./lldb/1874/playground1.swift:7:8:错误:没有这样的模块'Foo'导入Foo
如何恢复到有效的Playground导入?[编辑:注意,两个答案已经产生了将操场与框架相关联的详细说明; 我遵循了这些指示,但没有运气. 该解决方案需要涉及在Xcode中重新配置某些内容; 我的装置显然已经坏了 ]
Ced*_*ric 51
对于其中一些上述解决方案都不起作用的(并且Xcode构建路径设置已经设置为Unique),我找到了一个解决方案.
框架必须使用iOS模拟器设备(列表中的任何设备)而不是a构建Generic iOS Device,因为Playgrounds不支持它.这个对我有用:
aya*_*aio 14
以下是我使用Xcode 7.1进行OS X的方法:
创建新项目:OS X Cocoa Framework,Swift.在这个例子中,我将其命名为"TestPlaygroundFMK".
创建一个新的Swift文件.
将类添加到文件中.代码必须是公开的.我为我们的例子做了这个:
import Foundation
public class Talk {
public class func sayHello() {
print("Hello from framework!")
}
}
Run Code Online (Sandbox Code Playgroud)
立即构建项目.
在菜单栏中,单击"文件">"另存为工作区".
创建一个新的Playground并将其保存在Swift文件旁边的项目文件夹中.
该游乐场必须不具有相同的名称作为项目.
再次构建项目.
在Playground中导入框架并使用它:
import TestPlaygroundFMK
Talk.sayHello()
Run Code Online (Sandbox Code Playgroud)
我的 Playground 运行良好,但发现当我退出 Xcode 并重新打开它时,我会收到如下错误:
错误:/var/folders/ft/bmk8wh6s5ms4my2pxhn3qbp40000gn/T/playground1-9216e0..swift:3:8: 错误:没有这样的模块“Playground_Sources”导入 Playground_Sources
...其中“游乐场”是我的游乐场文件的名称。
对此的解决方案(在 Xcode 9.0 中)是:
opt- cmd- 0)就我而言,它设置为macOS. 我把它改iOS回macOS(不需要重新编译),它开始工作正常......直到我关闭Xcode并再次打开它。
这是我发现的唯一适用于macOS playgrounds 的解决方案。这个错误在 Xcode 9.3 中仍然存在。
我不确定我遇到的问题是否与最初的问题一样 - 但考虑到解决方案的混合和年龄以及缺乏对我有用的解决方案,我想我会分享。
在 Xcode 11+(在 12.2 上测试过)中,当 Playgrounds 包含属于工作区一部分的框架时,我经常会遇到“No Such Module”错误,导致 Playgrounds 无法运行。
对我来说,解决方案是在 Playground 的“文件检查器”和“构建活动方案”选项中:
这确保了项目是针对目标正确构建的,现在我烦人的编译问题消失了!
创建一个工作区如下:
现在,创建一个带有您的类的swift文件的Cocoa框架
注意:如果您只想将类而不是框架添加到游乐场,请查看链接如何将我自己的类导入Xcode 7游乐场?
Apple 支持提供的解决方案是调整我的 Xcode 首选项。在位置 :: 高级中,我的配置是“旧版”。通过更改为“Unique”,并撤消我尝试插入的任何路径,Playgrounds现在可以导入框架。
| 归档时间: |
|
| 查看次数: |
14546 次 |
| 最近记录: |