管理Objective-C中的下载进度

时间:2011-05-13 18:40:15

标签: objective-c delegates

晚上好, 我是第一次使用Objective-c的认真经历,我问你一个提示。

我实现了NSUrlConnetion委托,我从一个主要的viewController调用这个类,例如名字myViewController。

我想在viewController中看到下载的进度,我想做这样的semothing: 在h文件中:...接口myViewController其中协议receiveDelegate包含一个方法,如 - (int)setProgressPercent,返回下载部分的百分比。 在.m文件中,我调用NSUrlDelegate传递自己。

然后在NSUrlConnection委托中: 在.h文件中:@property(nonatomic,retain)id father; 当我接受某事:[父setProgressPercent:newValue];

适合你吗?

1 个答案:

答案 0 :(得分:0)

每次数据到达时,NSURLConnection的委托将被发送connection:didReceiveData:。您可能会将此数据累积到NSMutableData实例变量中。因此,您可以获得到目前为止累积的NSMutableData的大小,并将其与正在下载的对象的完整大小进行比较,并使用该值在您的界面中设置某些内容(可能是进度指示器)。

但是,为了做到这一点,您必须事先知道要下载的对象的完整大小有多大。您可以通过解析connection:didReceiveResponse:收到的NSURLResponse来了解这一点。