gpt4 book ai didi

objective-c - 将工作委托(delegate)给两个不同的委托(delegate),这可能吗?

转载 作者:可可西里 更新时间:2023-11-01 17:10:58 30 4
gpt4 key购买 nike

我尝试在使用 ASIHTTPRequest 从服务器下载图像时显示 UIProgressView。我想在 UIProgressView 上显示进度,它使用这段代码完美运行:

[request setDownloadProgressDelegate:progressIndicator];

我想在进度条旁边显示 %,这样用户就知道下载了多少百分比。像这样的东西(我用 Photoshop 制作的):

mockup of desired UI


我想到的是用

- (void)request:(ASIHTTPRequest *)request didReceiveBytes:(long long)bytes;

更新我的 UILabel,当 ASI 请求接收到一定数量的字节时,总是调用此方法。

但是要调用这个方法,我必须在我的类中实现它,然后将 setDownloadProgressDelegate 设置为 self,就像这样,

[request setDownloadProgressDelegate:self];

因此,我能否使 request 对象同时具有两个不同的委托(delegate),这样我就可以同时接收到响应?我只需要做一些数学运算来计算百分比并更新我的 UILabel -- 我知道我正在下载的文件的确切大小。

最佳答案

你想使用 NSNotificationCenter。这允许您使用发布/订阅模型松耦合对象。您可以从一个对象发布通知,任意数量的对象都可以获取信息,而无需委托(delegate)的紧密耦合。

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nsnotificationcenter_Class/Reference/Reference.html

关于objective-c - 将工作委托(delegate)给两个不同的委托(delegate),这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7961682/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com