我尝试在使用 ASIHTTPRequest
从服务器下载图像时显示 UIProgressView
。我想在 UIProgressView
上显示进度,它使用这段代码完美运行:
[request setDownloadProgressDelegate:progressIndicator];
我想在进度条旁边显示 %
,这样用户就知道下载了多少百分比。像这样的东西(我用 Photoshop 制作的):
我想到的是用
- (void)request:(ASIHTTPRequest *)request didReceiveBytes:(long long)bytes;
更新我的 UILabel
,当 ASI 请求接收到一定数量的字节时,总是调用此方法。
但是要调用这个方法,我必须在我的类中实现它,然后将 setDownloadProgressDelegate
设置为 self
,就像这样,
[request setDownloadProgressDelegate:self];
因此,我能否使 request
对象同时具有两个不同的委托(delegate),这样我就可以同时接收到响应?我只需要做一些数学运算来计算百分比并更新我的 UILabel
-- 我知道我正在下载的文件的确切大小。
最佳答案
你想使用 NSNotificationCenter。这允许您使用发布/订阅模型松耦合对象。您可以从一个对象发布通知,任意数量的对象都可以获取信息,而无需委托(delegate)的紧密耦合。
关于objective-c - 将工作委托(delegate)给两个不同的委托(delegate),这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7961682/