目标:能够在ObjC项目中使用swift pod
采取的步骤:
Podfile
use_frameworks!
pod install
(Cocoapods 1.0.0版)结果(错误):
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'
解决问题的步骤:
""
,<>
和@import
进行导入(目前我的代码中的所有导入都使用#import <Realm/Realm.h>
完成)(使用#import <Realm
搜索并{ {1}})(无效)#import "Realm
的项目文件夹,但只找到了"@interface RLMNotificationToken"
文件的一个实例,所以我没有重复项RLMRealm.h
内容以外的所有文件 AppDelegate.h/m
,#import "R
,#import <R
,发现了一个流氓@import R
问题:
坦率地说,我很困惑,不知道此时该做些什么。
那么如何修复这些构建错误?为什么会这样?或者我应该尝试哪些其他解决问题的步骤? (对这些问题的答案将不胜感激)
答案 0 :(得分:2)
显然我的一个文件中有一个#import <RLMRealm.h>
(不确定那里有什么)。我将其更改为@import Realm;
,现在一切正常。我之前在搜索时错过了,只在梳理我的代码时发现它。有趣的是,它适用于库,但不适用于框架。好吧,想通了,现在一切都很好。
答案 1 :(得分:1)
swift的Realm pod是"RealmSwift"
。我认为你正在使用objective-c pod。
请查看此链接Realm for Swift。您还可以拖放领域框架,这样可以避免您遇到的错误。
答案 2 :(得分:0)
请检查导入Realm类的所有位置。就我而言,我导入了#import <RLMArray.h>
。应为#import <Realm/RLMArray.h>