我有一个项目,用户可以同时下载最多三个文件。我想在多个页面上显示这些下载的进度。
我目前通过这样的通知来做这件事......
[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并没有滞后,而且它可以正常运行。
我缺少一个更好的选择吗?我想确定我没有做任何事......太过分了
答案 0 :(得分:1)
我之前在应用中做过同样的事情,从未遇到过问题。如果您关注通知的数量,则只能每下载5-10%而不是每次更新时发布通知。但无论如何,你所做的事应该没问题。