2016-10-26 25 views
0

我正在開發一個SDK,這是一個將出售給第三方的靜態庫。這個靜態庫將使用Relam作爲數據存儲。維護Relam的多個實例

我正在計劃一個場景,我的客戶也有一個使用Relam在他的應用程序上的數據存儲。我不希望他們更改/遷移他們的數據存儲,因爲他們正在合併我的SDK。

使用Relam時我們可以有多個數據存儲/實例嗎?

或者還有其他更好的方法來處理這種情況嗎?

+0

正在閱讀Relam文檔,https://realm.io/docs/objc/latest/#realm-configuration。將有一個單獨的配置解決這個問題? – rustylepord

回答

2

我會回答這兩個部分:

1部分 - 代碼架構

如果你在網絡內部在庫中使用的境界,你擔心你的境界,將有可能如果他們也使用Realm,則會泄露到用戶的代碼中,但有一些方法可以緩解這種情況。

你是對的,因爲使用RLMRealmConfiguration可以讓你正確地將你的Realm的大部分實現與他們分開。您可以使用fileURL屬性明確指定您的Realm文件將保存的位置,並使用objectClasses屬性明確定義只有您自己的RLMObject類將保存到它。

這可能需要測試,但反過來也是如此。 Realm使用Objective-C反射默認添加所有RLMObject類。因此,除非用戶在其配置中還指定了objectClasses,否則庫的模型對象的架構可能會出現在它們的Realm文件中。這將是無害的,但對用戶而言可能看起來很奇怪。

部分 - 分佈

這不是偉大的,有相同的框架,2份在一個靜態的二進制文件。特別是當可以想象用戶可以開始使用Realm的新版本而不是庫中的內容時。因此,我肯定會建議將Realm作爲您的庫的動態框架依賴項;所以你的庫和用戶的代碼都可以定位到相同的代碼庫。