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

时间:2016-04-05 22:50:18

标签: ios objective-c swift frameworks ensembles

我将Ensembles添加到我的Swift项目中 - 在https://github.com/drewmccormack/ensembles找到。我没有运气添加iCloud支持到我的应用程序和跨设备同步数据,所以希望这将工作。

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

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

    这就是它在我的项目中的样子,我不确定我是否已经做好了这一步。

  6. enter image description here

    1. 选择“构建阶段”选项卡。 打开Target Dependencies,然后单击+按钮。
    2. 找到 Ensembles资源iOS产品,并将其作为依赖项添加。
    3. 在源列表中打开Ensembles iOS.xcodeproj项目,然后打开Products组。
    4. 将Ensembles.bundle产品拖到副本中 Bundle Resources构建应用程序阶段。
    5. 在预编译的头文件或使用Ensembles的任何文件中添加以下导入。
    6. 我遇到问题是第10步。我是否必须创建桥接头或只是将框架导入我的swift文件?

      这是我在CoreDataStack.swift文件

      中导入的方式
      import UIKit
      import CoreData
      import Ensembles
      
      class CoreDataStack: NSObject, CDEPersistentStoreEnsembleDelegate {
      
      }
      

      这给了我错误;

        

      没有这样的模块' Ensembles'

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

      • 添加新的标题文件
      • 导入合奏

      这就是它的样子;

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

      但仍然没有运气,在尝试导入框架以使用我的swift项目时,是否有人知道我哪里出错了?

1 个答案:

答案 0 :(得分:2)

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

但是我不认为你可能正确添加了一个桥接头,转到,文件,新建,文件,添加一个Objective-C文件,然后会弹出一个对话框,询问你是否要创建一个桥接头。添加两个文件但删除objective-C文件并保留桥接标头。

然后将ensembles框架导入桥接头,如此。

#import <Ensembles/Ensembles.h>

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