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

时间:2011-12-26 19:20:41

标签: mysql ios sqlite download delay

当我按下此按钮时,我的iOS应用程序中有一个按钮,它会执行此操作:

  1. 调用PHP Server来运行脚本(来自MySQL的查询数据库并将其重写为SQLite文件)
  2. 下载xxx.sqlite文件
  3. 所以有时当我的服务器滞后或慢,应用程序将在第一步尚未完成时下载,也许我需要一种方法来延迟代码或者无论如何我可以检查文件是否完整从MySQL到SQLite文件的转换?

    每一个答案都有一堆:)

2 个答案:

答案 0 :(得分:0)

一种方法是做这样的事情

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脚本也不知道(例如:取决于os的调度程序,它可能会饿一点,每一代都可以在不同的时间间隔内完成) 你只能知道世代何时完成

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

答案 1 :(得分:0)

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

如果要在后台下载连接器,请使用异步 ASIHTTPRequest