2014-09-18 108 views

回答

0

似乎InAppSettingKit沒有任何內置的客戶端/服務器交互支持,因此您需要實現自己的自定義同步系統。

您的問題涉及到一個非常廣泛的話題,並提供了不止一些可能的解決方案以及不同的複雜性,所以我只會解釋如果我處於您的情況下我該如何做。

  1. 客戶端

首先,我要整合類似AFNetworking簡化存儲和數據從服務器到/檢索的過程。這將允許您輕鬆地將您的設置「POST」到服務器,並在您希望檢索它們時「GET」它們。 AFNetworking非常強大,記錄完備且免費。你可以在這裏瞭解更多:

http://www.afnetworking.com/

每當用戶進行了更改,使用AFNetworking的方法來發布任何改變駐留在服務器上的一個腳本,並將其保存。當您想要檢索它時,請執行GET操作。您需要在應用中生成某種唯一的密鑰來引用每個用戶。如果您在應用程序中使用任何類型的登錄系統,則可以將其與此綁定。如果您希望用戶想要從多個設備檢索這些設置,則可能需要執行後者。

您還需要決定如何處理衝突的政策。如果本地保存的設置與您從服務器上獲取的設置不同,那麼您會做什麼?如果您的用戶無法訪問網絡,您會使用什麼回退?

通常的解決方案是採取更新的任何更新(意味着您需要存儲更新的時間戳) - 這可能最適合於簡單的需求 - 但邏輯可能會根據您的需求而有所不同。

  • 服務器端
  • 你將需要一個服務器端組件來處理保存這些變化到服務器。這可能是一個Node.js,Ruby,PHP等腳本,它將輸入發送給服務器,並將其保存在數據庫或文件中。這也是一個廣泛的話題,實際上取決於你的編程背景是在服務器端。

    注意:您應該考慮此設置的安全需求,但如果保存的設置不是非常敏感,則這可能會很小。否則,您將需要採取適當的措施來保護數據(SSL/TLS,salting/hashing密碼等)。

    1. 你需要這個嗎?

    您在您的問題中特別提到了「網絡服務器」,因此我假定您有自己的服務器並且很樂意爲其編寫代碼(或願意學習如何)。這就是我編寫我自己的客戶端/服務器代碼的方式,它有很多優點,但如果您所做的只是保存一些設置,則可能會過度滿足您的需求。

    隨着iOS 8 Apple推出了一個名爲CloudKit的簡化iCloud系統。它將一切與用戶的iCloud帳戶綁定在一起,設計起來非常簡單。如果你只是在同步一些簡單的設置,你可以使用CloudKit的鍵/值存儲來爲你處理。

    CloudKit有一些缺點。存儲的數據是不透明的(例如,您將無法從Web應用程序或Android應用程序訪問它),僅限於iOS 8和更新的版本,如果您的應用程序非常,很受歡迎。但對於簡單的設置同步,這可能完全適合您的需求。

    CloudKit定價(可能是免費給你):

    https://developer.apple.com/icloud/documentation/cloudkit-storage/

    約CloudKit WWDC視頻:

    https://developer.apple.com/videos/wwdc/2014/?id=208

    https://developer.apple.com/videos/wwdc/2014/?id=231

    CloudKit設計指南:

    https://developer.apple.com/library/ios/documentation/General/Conceptual/iCloudDesignGuide/Chapters/Introduction.html

    CloudKit框架參考:

    https://developer.apple.com/library/ios/documentation/CloudKit/Reference/CloudKit_Framework_Reference/index.html

    我希望這有助於。

    相關問題