目标:能够在ObjC项目中使用Swift Pod

已采取的步骤:

  • 通过附加Podfile
  • 来更改use_frameworks!
  • Ran pod install(Cocoapods版本1.0.0)
  • 再次构建工作区

  • 结果(错误):
  • 我收到以下Realm.io错误(由于我在ObjC中进行编码,因此从pod 'Realm'安装了pod):
  • RLMRealm.h:51:1: Duplicate interface definition for class 'RLMRealm'
  • RLMRealm.h:95:62: Property has a previous declaration
  • RLMRealm.h:105:38: Property has a previous declaration
  • RLMRealm.h:110:56: Property has a previous declaration
  • RLMRealm.h:115:38: Property has a previous declaration
  • RLMRealm.h:297:28: Property has a previous declaration
  • RLMRealm.h:493:1: Duplicate interface definition for class 'RLMNotificationToken'

  • 解决问题的步骤:
  • (编辑历史记录中的前一个问题导致了这个简化的问题)
  • 删除所有吊舱并重新安装(无效)
  • 构建阶段中未链接的Pods框架,并已重新链接(无影响)
  • 清理并构建/清理构建文件夹并构建(无影响)
  • 尝试使用""<>@import导入(当前,我的代码中的所有导入都通过#import <Realm/Realm.h>完成)(使用#import <Realm#import "Realm搜索)(无效)
  • 创建新项目,复制文件,并安装Pod(无效)
  • 在项目文件夹中搜索"@interface RLMNotificationToken",仅找到RLMRealm.h文件的一个实例,因此我没有重复的
  • 删除除AppDelegate.h/m以外的所有文件,构建成功
  • 搜索#import "R#import <R@import R并找到流氓#import <RLMRealm.h>

  • 问题:

    坦白说,我真的很困惑,不确定现在该怎么做。

    那么,如何解决这些构建错误?为什么会这样呢?还是我应该尝试其他解决问题的步骤? (对上述任何问题的回答将不胜感激)

    最佳答案

    显然,我的一个文件中包含一个#import <RLMRealm.h>(不确定如何进入其中)。我将其更改为@import Realm;,现在一切正常。我以前搜索时错过了它,只是在组合我的代码时才发现它。有趣的是它与库一起使用,但不适用于框架。好吧,弄清楚了,现在一切都很好。

    10-07 18:34