我正在将一堆文件从 iPhone 上传到网络服务。我想在屏幕上有一个 UIAlertView ,里面有一个 UIActivityIndi​​catorView 。我让它工作得很好。但是,我想在上传每个文件时更新 UIAlertView 的标题。(“正在上传文件 1...”、“正在上传文件 2...”等)

我知道您不能仅在具有同步 Web 请求的循环中设置标题,因为 UI 运行循环永远不会被调用。我尝试使用 NSTimer 来触发网络请求,但由于每个请求的持续时间是不可预测的,所以这是行不通的。(该消息可能会在请求实际完成之前更新。)

我真的很想同步上传每个文件,一次一个,因为 iPhone 带宽非常有限。我只是想不出一种机制来表示“一旦这个同步操作完成,让 UI 更新一次,然后再执行另一个同步操作。”

有帮助吗?

解决方案

好的,这是我解决这个问题所采取的方法:

  1. 创建 UIAlertView
  2. 启动异步 Web 请求来发布项目,将委托设置为 self
  3. 在连接DidFinishLoading中:方法,检查是否还有更多项目要发布。如果有,则更新标题并启动另一个异步请求。如果没有,请关闭警报。

这意味着您必须维护一些类变量来跟踪正在上传的请求,但它运行良好,并且不涉及任何复杂的线程或其他任何内容。

其他提示

你试过这个吗?

alertView.title = @"new title";
[alertView setNeedsDisplay];
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top