我对IOS编程很新 所以我甚至不知道如何提问 但我会解释这个问题 我创建了一个主要依赖于从服务器获取数据的应用程序,有时json的大小太大 有没有办法在设备上保存json而不是带来,但最近的数据或只能与服务器同步 该计划是客观的,我使用afnetworking 后端是ASP.net-mvc
答案 0 :(得分:0)
处理此用例的一般方法是,始终在应用程序中存储latestItemId / latestItemTimestamp,每次需要获取新数据时,都会使用此信息调用服务器。在服务器端点中,使用此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中)