游乐场导入:没有这样的模块'Foo'

GoZ*_*ner 37 xcode swift swift-playground xcode7

我孜孜不倦地遵循Apple的指示将自定义模块导入游乐场,包括这里的说明.然而我得到:

游乐场执行失败:/var/folders/z3/kd0nj4ln1rgcpm8bdz7067wh0000gs/T/./lldb/1874/playground1.swift:7:8:错误:没有这样的模块'Foo'导入Foo

如何恢复到有效的Playground导入?[编辑:注意,两个答案已经产生了将操场与框架相关联的详细说明; 我遵循了这些指示,但没有运气. 该解决方案需要涉及在Xcode中重新配置某些内容; 我的装置显然已经坏了 ]

错误和尝试的详细图像: 在此输入图像描述

这是另一个尝试,基于@EricD的答案,显示目录结构,没有骰子. 在此输入图像描述

Ced*_*ric 51

对于其中一些上述解决方案都不起作用的(并且Xcode构建路径设置已经设置为Unique),我找到了一个解决方案.

框架必须使用iOS模拟器设备(列表中的任何设备)而不是a构建Generic iOS Device,因为Playgrounds不支持它.这个对我有用:

工作计划

  • 哇.这是一个荒谬的细节...感谢分享! (2认同)

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)

在此输入图像描述

  • 好的.我按照您的指示尝试更新了我的答案.然后,我下载了你的zip,打开了工作区,构建了框架并改为操场.还是一样的问题!显然我的Xcode安装被搞砸了. (2认同)

Seb*_*tin 8

我的 Playground 运行良好,但发现当我退出 Xcode 并重新打开它时,我会收到如下错误:

错误:/var/folders/ft/bmk8wh6s5ms4my2pxhn3qbp40000gn/T/playground1-9216e0..swift:3:8: 错误:没有这样的模块“Playground_Sources”导入 Playground_Sources

...其中“游乐场”是我的游乐场文件的名称。

对此的解决方案(在 Xcode 9.0 中)是:

  • 单击工作区中的任何 Playground 文件
  • 显示实用程序面板 ( opt- cmd- 0)
  • 在“游乐场设置”下,将“平台”更改为其他任何内容,然后将其重新设置。

就我而言,它设置为macOS. 我把它改iOSmacOS(不需要重新编译),它开始工作正常......直到我关闭Xcode并再次打开它。

这是我发现的唯一适用于macOS playgrounds 的解决方案。这个错误在 Xcode 9.3 中仍然存在。


mob*_*bob 7

我不确定我遇到的问题是否与最初的问题一样 - 但考虑到解决方案的混合和年龄以及缺乏对我有用的解决方案,我想我会分享。

在 Xcode 11+(在 12.2 上测试过)中,当 Playgrounds 包含属于工作区一部分的框架时,我经常会遇到“No Such Module”错误,导致 Playgrounds 无法运行。

对我来说,解决方案是在 Playground 的“文件检查器”和“构建活动方案”选项中:

建立主动方案

这确保了项目是针对目标正确构建的,现在我烦人的编译问题消失了!


Ann*_*i S 5

  1. 创建一个工作区如下:

    • 选择文件>新建>工作区
    • 输入工作区名称,并在文件系统中指定其位置
    • 单击保存
  2. 现在,创建一个带有您的类的swift文件的Cocoa框架

    • 选择文件>新建>项目
    • 选择Cocoa框架>下一步
    • 输入产品名称和语言>下一步
    • 在单击"创建"之前,在"添加到:"和"组"列表中选择"您的工作区名称",如图所示 添加到工作区
    • 框架已添加到您的工作区
  3. 在框架中创建swift文件
    • 在Xcode中右键单击要添加swift文件的文件夹并选择新文件...
    • 选择swift> Next>命名文件>创建
  4. 在Xcode中选择您的框架 - >构建您的框架
  5. 创建游乐场 - >游乐场也应该是您工作区的一部分,如果不将其拖动到您的工作区,它将自动添加.
    • 右键单击Xco​​de的文件部分>新文件...> Playground
    • 进口
    • 打电话给你的方法

注意:如果您只想将类而不是框架添加到游乐场,请查看链接如何将我自己的类导入Xcode 7游乐场?


GoZ*_*ner 2

Apple 支持提供的解决方案是调整我的 Xcode 首选项。在位置 :: 高级中,我的配置是“旧版”。通过更改为“Unique”,并撤消我尝试插入的任何路径,Playgrounds现在可以导入框架。

  • 这对我有用,我还必须关闭并重新打开项目 **Swift4.1 Xcode 9.3** (2认同)