在Objective-C中使用带有域的图表

时间:2016-10-29 19:36:32

标签: ios cocoapods realm ios-charts

我的项目主要用Objective-C编写,我在其中使用了Realm。 我想添加带有域支持的Charts库,但是在尝试使用cocoapods添加它时出错。

Podfile看起来像(和其他一些库一样)

platform :ios, '9.0'
use_frameworks!

target 'MY_PROJECT' do
pod 'Realm'
pod 'Charts/Realm'
end

我得到的错误是:

[!] Unable to satisfy the following requirements:

- `Realm` required by `Podfile`
- `Realm` required by `Podfile`
- `Realm` required by `Podfile`
- `Realm (= 2.0.0)` required by `Podfile.lock`
- `Realm (= 0.97.0)` required by `RealmSwift (0.97.0)`

由于我的项目是混合的,我无法直接使用RealmSwift。 任何想法?

2 个答案:

答案 0 :(得分:2)

问题不在于混合Realm和RealmSwift。您似乎首先安装了没有图表的Realm,然后将图表添加到Podfile然后pod install,对吧?因此Podfile.lock(将文件固定到特定版本的文件)将Realm固定到2.0.0,但是图表需要较旧版本的RealmSwift(RealmSwift依赖于Realm隐含)。这是错误的原因。

要解决此问题,您可以执行pod update或从Podfile中删除pod 'Realm'。无论哪种方式删除Realm 2.0然后安装Realm和RealmSwift 1.1.0(1.1.0是图表所需)。

您无法使用更高版本的Realm,因为图表需要1.1.0。

答案 1 :(得分:1)

正如您所说,无法使用混合Realm和RealmSwift应用程序。来自docs

  

如果您希望纯粹使用来自Swift的Realm,您应该考虑   使用Realm Swift代替。 Realm Objective-C和Realm Swift API   是不可互操作的,并且不支持它们一起使用。

无论如何,我给你的建议是使用Swift的Realm Cocoa(Objective-C),所以使用数据库的应用程序没有任何重大问题。不要在Podfile中混合两个依赖项。仅使用Realm而不使用RealmSwift。