有没有办法解除与服务器的连接
Is there a way to relieve connect to the server
我对 IOS 编程还很陌生
所以我什至不知道怎么问
但我会解释这个问题
我创建了一个主要依赖于从服务器获取数据的应用程序,有时 json 的大小太大
有没有办法在设备上保存json不带,但最近的数据还是只工作与服务器同步
该程序是 objective c,我使用 afnetworking
后端是 ASP.net-mvc
处理此用例的一般方法是,您始终将 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) 保存在应用程序内存中 and/or 使用 NSUserDefaults
来存储它。 NSUserDefaults.standardUserDefaults()
方法可能会有帮助(在 Swift 中)
我对 IOS 编程还很陌生 所以我什至不知道怎么问 但我会解释这个问题 我创建了一个主要依赖于从服务器获取数据的应用程序,有时 json 的大小太大 有没有办法在设备上保存json不带,但最近的数据还是只工作与服务器同步 该程序是 objective c,我使用 afnetworking 后端是 ASP.net-mvc
处理此用例的一般方法是,您始终将 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) 保存在应用程序内存中 and/or 使用 NSUserDefaults
来存储它。 NSUserDefaults.standardUserDefaults()
方法可能会有帮助(在 Swift 中)