我可以在执行下一行代码之前延迟它吗?



我的iOS应用程序中有一个按钮当我点击这个按钮时它会这样做:

  1. 调用PHP服务器运行脚本(从MySQL查询DB并将其重写为SQLite文件)
  2. 下载xxx。sqlite文件

所以有时当我的服务器滞后或缓慢的应用程序将下载当第一步还没有完成,也许我需要一种方法来延迟代码或无论如何我可以检查文件是否完成从MySQL到SQLite文件的转换?

使用同步 ASIHTTPRequest到您的服务器。您的应用程序将挂起并等待,直到服务器完成请求并返回文件。

使用异步 ASIHTTPRequest如果你想在后台下载内容。

一种方法是这样做

php脚本:

unlink sqlite.file.md5
generate sqlite.file
calculate md5 sum of sqlite.file and output it in sqlite.file.md5

和客户端应该做的:

download sqlite.file.md5
if not found:
    wait some time and try again (in progress)
download sqlite.file
calculate md5 of sqlite.file and compare it with sqlite.file.md5
if there is a mismatch you probably downloaded in the middle of generation

实际上你不知道你需要延迟多少时间下载,你的PHP脚本也不知道(例如:根据操作系统的调度程序,它可能会饿死一点,每一代可以在不同的时间间隔完成)您只能知道何时生成完成

编辑:或者您可以在生成完成后在sqlite文件的末尾插入一条记录然后检查它是否存在于下载文件

最新更新