显示多个页面的下载进度

时间:2015-06-18 22:55:17

标签: objective-c

我有一个项目,用户可以同时下载最多三个文件。我想在多个页面上显示这些下载的进度。

我目前通过这样的通知来做这件事......

[operation setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) {
      //do stuff here to calculate how much has been downloaded
      NSString* progress = ...
     //it would look like "3.4MB of 56MB"

      [[NSNotificationCenter defaultCenter]postNotificationName:[NSString stringWithFormat:@"video_%@", video.videoID] object:progress];
 }];

因此,如果我想捕获特定视频的进度,我只会在任何可以使用相应的videoID监听通知的页面上附加观察者。

现在,在下载文件时,会多次调用此进度块。对我而言,如此迅速地发布通知似乎并不高效。尽管如此,UI并没有滞后,而且它可以正常运行。

我缺少一个更好的选择吗?我想确定我没有做任何事......太过分了

1 个答案:

答案 0 :(得分:1)

我之前在应用中做过同样的事情,从未遇到过问题。如果您关注通知的数量,则只能每下载5-10%而不是每次更新时发布通知。但无论如何,你所做的事应该没问题。