將RestKit與Core Data配合使用通過標記對象並使用Core Data保存對象,用戶可以在沒有Internet連接的情況下添加,編輯或刪除對象時提供脫機支持。RestKit - 離線存儲後發送添加/編輯/刪除的對象
如果互聯網再次可用,我將獲取所有添加/編輯/刪除的對象,將它們保存在數組中,並且知道使用常規方法和每個項目的循環將它們放到服務器上。陣列的
列表
- fetchedAddedCompanies
- fetchedEditedCompanies
- fetchedAddedContacts
- fetchedEditedContacts
- fetchedDeletedContacts
Init方法(實施例用於編輯公司)
// Added Companies
...
// Edited Companies
for (Company *tempObj in fetchedAddedCompanies)
{
// Find keys for selected languages
[self updateAccountToServer:tempObj:addCompanyContext];
}
// ...
updateAccountToServer結束時,我發佈對象(self.company)及其映射到服務器。
...
[objectManager postObject:self.company mapResponseWith:[companyMapper inverseMapping] delegate:self];
...
問題
我在尋找更有效的解決方案時,用戶做了更新幾個對象,這樣, - 特殊的一個 - 也因爲與所有編輯/刪除添加一些新對象方法服務器返回將存儲的每個新創建對象的ID。
1)避免使用例如updateAccountToServer每個編輯的對象,併發送與所述RKObjectManager(regarding this question and a good answer)
在我看來1使用RKRequestQueue一起的對象數組代替
2))將是難以實現,因爲該resourcePath爲每個請求包含一個唯一的ID,所以我已經試過2),但丟失的可能性使用
[syncQueue addRequest:[[RKObjectManager sharedManager] objectLoaderWithResourcePath:tempString delegate:self]];
感謝您的想法綁定映射爲每個請求!
如果它是RestKit 0.10的一個分支,此分支似乎現在處於非活動狀態。是否有人在Restkit 0.20.x的相似分支上工作? – Diego 2013-05-28 21:51:22