【发布时间】:2016-07-26 08:53:45
【问题描述】:
在 Swift 中使用 PHAsset 时,我遇到了一个常见问题,必须有一个好的设计/解决方案。例如,我有一个PHAsset 的集合,比如说assetCollection。现在我想得到assetCollection 的总大小,这是其中所有资产的总和。
我知道有一个异步 API 可以获取单个资产大小 https://stackoverflow.com/a/26551990/1084174(在 Objective-c 中),
[[PHImageManager defaultManager] requestImageDataForAsset:asset options:nil resultHandler:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info) {
float imageSize = imageData.length;
//convert to Megabytes
imageSize = imageSize/(1024*1024);
NSLog(@"%f",imageSize);
}];
但是当它是一个集合时,我该如何设计解决方案?
我的想法是,我可以在循环内为assetCollection 中的每个资产运行异步调用,将total 变量中的大小相加,直到我得到最后一个结果(可能正在使用全局变量)。 total 将是最终的集合大小。但我认为对于这样的常见问题必须有一些更好的设计/解决方案。
如果有人建议,将不胜感激。
【问题讨论】:
标签: ios swift asynchronous collections phasset