我正在開發一個SDK,這是一個將出售給第三方的靜態庫。這個靜態庫將使用Relam作爲數據存儲。維護Relam的多個實例
我正在計劃一個場景,我的客戶也有一個使用Relam在他的應用程序上的數據存儲。我不希望他們更改/遷移他們的數據存儲,因爲他們正在合併我的SDK。
使用Relam時我們可以有多個數據存儲/實例嗎?
或者還有其他更好的方法來處理這種情況嗎?
我正在開發一個SDK,這是一個將出售給第三方的靜態庫。這個靜態庫將使用Relam作爲數據存儲。維護Relam的多個實例
我正在計劃一個場景,我的客戶也有一個使用Relam在他的應用程序上的數據存儲。我不希望他們更改/遷移他們的數據存儲,因爲他們正在合併我的SDK。
使用Relam時我們可以有多個數據存儲/實例嗎?
或者還有其他更好的方法來處理這種情況嗎?
我會回答這兩個部分:
1部分 - 代碼架構
如果你在網絡內部在庫中使用的境界,你擔心你的境界,將有可能如果他們也使用Realm,則會泄露到用戶的代碼中,但有一些方法可以緩解這種情況。
你是對的,因爲使用RLMRealmConfiguration
可以讓你正確地將你的Realm的大部分實現與他們分開。您可以使用fileURL
屬性明確指定您的Realm文件將保存的位置,並使用objectClasses
屬性明確定義只有您自己的RLMObject
類將保存到它。
這可能需要測試,但反過來也是如此。 Realm使用Objective-C反射默認添加所有RLMObject
類。因此,除非用戶在其配置中還指定了objectClasses
,否則庫的模型對象的架構可能會出現在它們的Realm文件中。這將是無害的,但對用戶而言可能看起來很奇怪。
部分 - 分佈
這不是偉大的,有相同的框架,2份在一個靜態的二進制文件。特別是當可以想象用戶可以開始使用Realm的新版本而不是庫中的內容時。因此,我肯定會建議將Realm作爲您的庫的動態框架依賴項;所以你的庫和用戶的代碼都可以定位到相同的代碼庫。
正在閱讀Relam文檔,https://realm.io/docs/objc/latest/#realm-configuration。將有一個單獨的配置解決這個問題? – rustylepord