0

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

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

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

4

2 回答 2

1

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

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

这意味着您必须维护一些类变量来跟踪正在上传的请求,但它可以完美地工作并且不涉及任何复杂的线程或其他任何东西。

于 2009-04-29T18:06:41.517 回答
0

你试过这个吗?

alertView.title = @"new title";
[alertView setNeedsDisplay];
于 2014-03-14T21:49:23.197 回答