ios - 在动态框架中使用 Realm?

标签 ios cocoapods realm ios-frameworks

我将把我的 iOS 应用程序移植到 OS X(也许之后还会移植到 tvOS)。它用奇妙的境界来坚持。我目前正在将应用程序中的数据模型分解为动态框架,我打算在 iOS 和 OS X 目标中使用该框架,以共享该代码,因为它完全独立于 UI。

我想知道将 Realm 纳入此处的最佳方式是什么。我将不再需要/希望它作为应用程序本身的依赖项,但我希望应用程序依赖于动态框架,然后让该框架依赖于 Realm。我不介意这是如何完成的,即我与 Cocoapods 没有特别的联系。

这个想法是应用程序本身不会看到或关心 Realm 或框架内使用的持久性模型。就像这样:

iOS 应用程序 -> 动态框架 -> RealmSwift

OS X 应用程序 -> 动态框架 -> RealmSwift

tvOS 应用 -> 动态框架 -> RealmSwift

-> = 取决于

如果可能的话,我还希望它能够变得智能,并包含 Realm 的 iOS 或 OS X 版本,这样我所需要做的就是在我的 Xcode 项目中构建相应的目标,然后它就可以了。将获取正确的框架、正确版本的 Realm,一切都会好起来的。

我该怎么办? Cocoapods 会允许这样做吗?动态框架首先是正确的想法吗?我应该为动态框架制定 podspec 吗?

最佳答案

您可以通过在动态框架的 podspec 中定义 s.dependency "Realm" 来创建中间件,如果您将其视为应用程序中的另一个 pod,那么您可以拥有一个很好的抽象层让你在 Realm 之上工作,我通过 ARAnalytics 进行分析来做到这一点.

就现实世界的链接而言,您必须将 Realm 链接到您的应用程序,运行时不容易允许确定特定于另一个库的依赖项的范围,因为它们存在于平面对象图中。

关于ios - 在动态框架中使用 Realm?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36956424/

相关文章:

ios - CoreBluetooth [警告] 未知错误 : 311 Occurs when repeatedly connect and disconnect using CoreBluetooth Framework in iOS

ios - 在开发中禁用 Tomcat/Jetty ETag 或缓存,不适用于 IOS

ios - 接受邀请多点连接

swift - FirebaseFirestoreSwift 不会安装 (CocoaPods)

ios - xcodebuild : error: 'APP.xcworkspace' does not exist

ios - 获取 AdMob 中介 ID

ios - 更新我的 pod 会导致 GoogleDataTransport Umbrella header 中出现错误

android - RealM:如何删除 RealmList 但检查引用

database - 在 React Native 的 Realm 上过滤具有 null 属性的对象

安卓 Realm : Restoring realm DB from backup file