iOS:检查远程文件更新

|| 我有一些UITableViews从远程XML文件收集其内容。有时文件已更新,但视图未更新,因为我在viewDidLoad方法中加载了文件。 我假设我应该在viewDidAppear中进行检查并再次加载我的XML文件。但是我不希望用户每次单击该视图时都加载它。 做这个的最好方式是什么?我可以以某种方式检查网络上远程文件的更新日期吗?还是应该将更新的日期存储在我的应用中,然后每隔一段时间检查一次?必须有一种首选的方法来执行此操作,以便使我知道XML文件已更新。 谢谢。     
已邀请:
我建议向具有很小开销的页面发出一个get请求,该页面仅包含您需要检查版本是否已更改的数据。 在iOS应用上,存储您存储的最新版本值,并根据您拉出的这个小页面进行检查。如果页面上的值较大(较新),则提取完整的XML文件。 该版本值可以是其更新的日期时间或版本号。我目前不在Mac上,因此测试Obj-C代码并不容易,但是这里有一些伪代码:
int versionNumber; // can be a datetime as well
...
void pullXmlIfAvailable() {
    int latestVersionNumber = parseVersionNumberFromPage(URLget(\"myurl.com/check.xml\")).to_i();

    if (latestVersionNumber > versionNumber)
        DataClass xml = parseDataFromLargerFile(URLget(\"myurl.com/bigfile.xml\"));
}
    
也许当您的应用程序进入后台(在您的应用程序委托中检测到)时,您可以立即加载新数据。 一个选项: 将数据对象放在应用程序委托类中,并在包含“ 1”的控制器中引用它。当视图控制器调用
viewDidAppear
时,只需调用
UITableView
中的
reloadData
。     
为什么不告诉服务器您的远程(基于客户端)版本的版本号或更新日期,而不是询问服务器版本号或更新日期。 然后,服务器将确定您是否已经拥有最新版本(A),或者是否需要新版本(B): 获取请求:http://www.example.com?lastUpdate=11050111042011 回答A:您已经准备好了 回应B:XML数据     
其他答案已经很好地涵盖了“何时重新加载”文件。 要考虑的另一件事是使用“拉动刷新”隐喻,这种隐喻在当今的表视图应用程序中非常常见,因为它为用户提供了一种既可以查看数据的最新更新时间又可以请求数据的方法。立即更新。 有关某些库的更多信息,请参阅iPhone像Tweetie一样的Down Down Refresh。     
您需要从应用程序发送简单请求(可能是通过计时器事件),这将询问服务器有关更新的信息。如果服务器上的内容已更新,则需要在应用程序中重新加载内容。 您可以跟踪服务器上的更改时间和应用程序中最新的内容更新时间。     

要回复问题请先登录注册