2014-01-14 41 views
0

我在我的Mac上使用了幾個應用程序,將它們的數據存儲在覈心數據中。我可以在CoreDataPro中看到我想要的數據。我想要這些數據 - 具體而言,我想將更改發送到某些遠程端點(如Zapier或其他REST服務)。將coredata流式傳輸到遠程REST端點

我正在考慮搭載類似RestKit的東西 - 這樣我就可以提供一個配置文件,說明應用程序的位置以及數據需要發送到的端點。我只需要刮取數據併發送到REST,而不是雙向同步。

我更喜歡我可以配置的實用程序,而不必編寫Mac應用程序。

我注意到http://nshipster.com/core-data-libraries-and-utilities/ - RestKit仍似乎是最有能力的,但在https://github.com/RestKit/RestKit/issues/1748我被告知coredata項目只能由一個單一的應用程序在同一時間打開,真的RestKit是專爲烘烤到源應用程序(而不是用於數據庫的抓取和發送)。

你會採取什麼方法?

我也注意到: http://www.raywenderlich.com/15916/how-to-synchronize-core-data-with-a-web-service-part-1

謝謝,馬丁。

回答

1

首先,核心數據是內存中的對象存儲。從Core Data寫入磁盤的內容可以是多種格式之一。其中一種格式恰好是SQLite。如果應用程序正在寫入SQLite,則可以對同一文件進行採樣並將其推送到其他地方。

但是,每個應用程序都有自己的數據結構,因此您需要在所處理的結構中保持靈活性。

RestKit在這種情況下沒有任何價值,因爲您只是將對象轉換爲JSON並將它們推送到服務器。內置的框架很好。

目前沒有實用工具可以做到這一點。你需要自己寫或者僱人來寫。

如果我打算做這樣的事情,我會使用Core Data自己編寫它,從首先編寫數據的應用程序中查詢模型,然後將數據庫轉換爲JSON並將其推送。你將無法分辨出什麼是新舊對比,因此服務器需要對此進行排序。

另一個選擇,因爲你無法分辨,只是將sqlite文件推送到服務器,讓服務器解析它。

+0

啊,謝謝你的清晰度:持久性和關於RestKit的其他觀點。另外你關於推送SQLite數據庫的觀點給了我幾個其他的想法! (我已經發布作爲潛在答案,下面) –

0

我想知道是否一個好的答案(其中好的排除了Objective-C幷包括我知道的語言,比如 - 在一定程度上 - Ruby)是使用MacRuby及其核心數據庫。

核心數據似乎可以作爲活動記錄公開。 https://www.google.com/search?q=macruby+coredata,值得注意的是http://www.spacevatican.org/2012/1/26/seeding-coredata-databases-with-ruby/

然而,MacRuby似乎已經褪色 - https://github.com/MacRuby/MacRuby/issues/231 - 它甚至不會在小牛隊編譯。

0

其他答案可能包括: