2013-10-23 46 views
0

我認爲我的問題很清楚,但爲了提供背景,我正在重新構建用於在比賽中評判的應用程序。我們試圖解決的一個問題是數據損壞;其中一臺設備的數據存儲由於接收到來自服務器的錯誤數據而完全損壞(它立即將上傳回服務器,從而破壞了服務器)。出於顯而易見的原因,這是一個需要修復的缺陷 - 無論是從實際的'我們可以再次使用這個應用程序'的角度來看,還是來自程序員的自豪感和聲譽。iOS/restkit提供哪些工具來檢測和防止數據損壞?

有兩種情況可能會發生這種情況。第一種情況是字符編碼失敗,我認爲我可以放心忽略,因爲JSON用於傳輸數據 - 而JSON要求使用特定的字符編碼(UTF-8)。我打算爲應用程序的版本2.0使用RESTkit,所以(希望)restkit

第二種情況是我正在摔跤的那個,因爲事件中的Wi-Fi是可怕的。儘管似乎不太可能,但有證據表明,實際的TCP通信流至少可能會被破壞,而不會導致結果數據無法通過JSON驗證。

所有這些都讓我問iOS和/或RestKit提供哪些工具(或底層的,自動激活的功能)來幫助防止數據在傳輸中被破壞? (由於我控制服務器代碼,如果需要,我可以更改API報告的內容)

回答

0

在有效數據解析的頂部(內容符合標準),沒有任何內容。 TCP提供了一些保護。

根據您要保護的位置,您可以考慮在響應中添加散列,以便驗證接收的內容是否與發送的內容匹配。

從SDK的角度來看,您有KVC驗證(RestKit嚴重關聯)。這允許您在映射過程中檢查每個對象的每個字段,並對任何未通過驗證檢查的對象進行裝箱。

+0

我實際上想過添加一個散列 - 可能是一個頭部 - 來驗證底層數據的完整性。我想我只是希望有一個內置的解決方案,因爲如果我這樣做,我可能不得不放棄使用RestKit。 – RonLugge

+0

您可以使用RestKit創建URL請求,AFNetworking下載數據並使用RestKit進行映射... – Wain