gpt4 book ai didi

iOS 识别多个异步调用的完成

转载 作者:可可西里 更新时间:2023-11-01 01:04:33 24 4
gpt4 key购买 nike

我有一个从 JSON API 响应解析的对象。此对象具有指向缩略图的链接。我有一个包含多个对象的数组,我想为其下载缩略图。所以我有一个循环开始为每个缩略图链接启动异步调用。

所以我在 ViewController 中有这个对象,我开始下载所有图像,我如何检测所有调用何时完成?

这是我的代码:

public class NewsListItem: NSObject {
public var entries: [NewsListEntry]? = []

public func downloadThumbnails() {
for itm in entries! {
if(itm.thumbnail != "") {
itm.downloadThumbnail()
}
}
}
}


public class NewsListEntry: NSObject {
public var thumbnail: String = ""
public var thumbnailImage: UIImage = UIImage()


public func downloadThumbnail() {
GetImageHandeler().getImage(self.thumbnail, completionHandler: { (responseObject, error) in
self.thumbnailImage = responseObject!
})
}
}

最佳答案

您可以为此使用 dispatch_groups。在 obj C 中,它看起来像这样:

dispatch_group_t serviceGroup = dispatch_group_create();

for (itm in entries){
dispatch_group_enter(serviceGroup);
[ImageHandler getImage:^(ConfigResponse *results, NSError* error){
// Do something with the error or results
dispatch_group_leave(serviceGroup);
}];
}

dispatch_group_notify(serviceGroup,dispatch_get_main_queue(),^{
// Do your stuff, everything has finished
});

你可以找到更详细的例子here

关于iOS 识别多个异步调用的完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32714487/

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