2017-03-18 85 views
1

我是相當新的IOS編程 服務器所以我甚至不知道怎麼問究竟 但我會解釋這個問題 我創造了主要依靠從獲取數據的應用有時服務器的json的大小太大 有沒有辦法在設備上保存json,而不是帶來,但最近的數據或只能工作與服務器同步 該程序是客觀的c和我使用網絡化 後端是ASP.net -mvc有沒有辦法來緩解連接到

回答

0

處理此用例的一般方法是,您總是將latestItemId/latestItemTimestamp存儲在您的應用程序中,並且每次需要獲取ne時w數據,您可以使用此信息撥打服務器電話。在您的服務器端點中,您使用此id/timestamp並在此id/timestamp後獲取數據。

當應用程序首次請求api端點時,latestItemId的值將爲0.每次獲取數據後,都會不斷更新它。由於您要求服務器僅在特定ID後提供數據,因此您只能獲得所需的數據(最新數據)

例如,您的服務器代碼可能看起來像(使用EF和LINQ)(以下代碼是給你一個想法,我沒有檢查編譯錯誤

public List<string> Messages(int fromId=0,int top=20) 
{ 
    var d = yourDbContext.Messages 
         .Where(x=>x.Id>fromId) 
         .OrderBy(f=>f.InsertTime) 
         .Take(top) 
         .Select(c=>c.MessageBody) 
         .ToList(); 
    return d; 
} 

從IOS客戶端應用程序方面,你可以保持數據(latestId)的應用程序存儲和/或使用NSUserDefaults儲存。 NSUserDefaults.standardUserDefaults()方法可能有幫助(在Swift中)

相關問題