没有这样的模块 'Ensembles' 错误 - 导入 objective-c 框架以在 swift 项目中使用

No Such Module 'Ensembles' Error - importing objective-c framework to use in swift project

我正在将 Ensembles 添加到我的 Swift 项目中 - 可在此处 https://github.com/drewmccormack/ensembles 找到。我没有为我的应用程序添加 iCloud 支持并跨设备同步数据,所以希望这能奏效。

我已按照以下说明将框架添加到我的应用程序,

  1. 在 Finder 中,将 Ensembles iOS.xcodeproj 项目从 Framework 目录到您的 Xcode 项目中。
  2. Select 左侧源列表中您应用程序的项目根目录,然后select 应用程序的目标。
  3. 在“常规”选项卡中,单击“已链接”中的 + 按钮 框架和库部分。
  4. 选择 libensembles.a 库并添加它。
  5. Select 构建设置选项卡。找到其他链接器 标志设置,并添加标志-ObjC。

    这是我项目中的样子,我不确定我是否正确完成了这一步。

  1. Select 构建阶段选项卡。 打开 Target Dependencies,然后单击 + 按钮。
  2. 找到 Ensembles Resources iOS 产品,并将其添加为依赖项。
  3. 在源列表中打开 Ensembles iOS.xcodeproj 项目,然后打开 Products 组。
  4. 将Ensembles.bundle产品拖入复制 应用程序的 Bundle Resources 构建阶段。
  5. 在预编译的 header 文件或使用 Ensembles 的任何文件中添加以下导入。

我在第 10 步遇到了问题。我是否必须创建桥接 header 或仅将框架导入我的 swift 文件?

这就是我在 CoreDataStack.swift 文件中导入的方式

import UIKit
import CoreData
import Ensembles

class CoreDataStack: NSObject, CDEPersistentStoreEnsembleDelegate {

}

这给了我错误;

No such module 'Ensembles'

我尝试通过执行以下操作创建桥接 header;

这是它的样子;

#ifndef Header_h
#define Header_h
#import <Ensembles/Ensembles.h>

#endif /* Header_h */

但仍然没有运气,有人知道我在尝试导入框架以用于我的 swift 项目时哪里出了问题吗?

创建桥接时 header 您不需要使用导入。

但是我认为您可能没有正确添加桥接 header,转到文件,新建文件,添加一个 objective-C 文件,然后会弹出一个对话框询问您是否想创建一个桥接 header。添加这两个文件,但删除 objective-C 文件并保留桥接 header。

然后像这样将集成框架导入桥接header。

#import <Ensembles/Ensembles.h>

成功创建桥接文件后,您不需要在 swift 文件中导入框架,它应该在整个项目中可用。有关详细信息,请参阅此 post - Connect Objective C framework to Swift iOS 8 app (Parse framework)