2016-04-30 32 views
2

我將把我的iOS應用程序移植到OS X(之後也許是tvOS)。它使用美妙的領域進行持久化。我目前正在將應用程序中的數據模型分解爲一個動態框架,我打算在iOS和OS X目標中使用這個動態框架來共享該代碼,因爲它完全獨立於UI。在動態框架中使用Realm?

我在想這裏包含的領域的最佳方式是什麼。我不再需要/希望它作爲對應用程序本身的依賴,但我希望應用程序依賴於動態框架,然後讓該框架依賴於Realm。我不介意這是如何完成的,也就是說我並不特別依賴Cocoapods。

這個想法是,應用程序本身沒有看到或關心Realm,或框架內使用的持久化模型。像這樣:

iOS App -> Dynamic Framework -> RealmSwift

OS X App -> Dynamic Framework -> RealmSwift

tvOS App -> Dynamic Framework -> RealmSwift

-> = Depends on

我還想,如果可能的話,這是聰明的,包括無論是iOS或OS X構建Realm,以便我需要做的就是在我的Xcode項目中構建相應的目標,並且它將抓取正確的框架,Realm的正確版本以及所有的W生病很好。

我該怎麼辦? Cocoapods會允許這個嗎?動態框架是否是正確的想法?我應該爲動態框架製作一個podspec嗎?

回答

2

您可以通過在podspec中爲您的動態框架定義s.dependency "Realm"來創建中間件,如果您認爲它只是應用中的另一個pod,那麼您可以擁有一個很好的抽象層,可以讓您在Realm上面工作,具體來說,我這樣做通過ARAnalytics進行分析。

在現實世界聯繫起來的方面,你必須要,雖然境界鏈接到你的應用程序,運行時不會輕易允許範圍界定具體到另一個庫的依賴,因爲他們的扁平對象圖中存在。

+0

無論如何要添加領域和realmswift famework MANUALLY到我的自定義框架?領域指令聲明將框架文件拖到目標常規選項卡中的嵌入式二進制文件部分。但是,在創建自定義框架項目時,嵌入式二進制文件沒有部分 – user2363025