gpt4 book ai didi

ios - dispatch_async 用于从 url 获取许多图像

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:48:30 24 4
gpt4 key购买 nike

我想从不同的 url 获取许多图像并将其设置为图像的按钮。我试图像上面显示的那样执行此操作,但没有任何反应。当我访问这个 View Controller 时,它没有任何按钮图像,也没有显示横幅 View ...。

dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){

NSURL *url = [NSURL URLWithString: [pictureUrl objectAtIndex:i]];
NSData *data = [[NSData alloc] initWithContentsOfURL:url];

dispatch_async(dispatch_get_main_queue(), ^(void){

UIImage *img1 = [[UIImage alloc]initWithData:data];
img2.image = img1;
[bt setBackgroundImage:img2.image forState:UIControlStateNormal];
});
});

最佳答案

我建议您使用支持图像缓存的库。例如,我使用了 AFNetworking对于我的一个项目,它很棒。它会自动在后台为您处理。在我的例子中,我需要一个在我开始新请求时自动取消请求的库,它对我有用。可以看到代码here .你可以看到类似的 solution来自另一个线程如下:

AFHTTPRequestOperation *requestOperation = [[AFHTTPRequestOperation alloc] initWithRequest:urlRequest];
requestOperation.responseSerializer = [AFImageResponseSerializer serializer];
[requestOperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Response: %@", responseObject);
_imageView.image = responseObject;

} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Image error: %@", error);
}];
[requestOperation start];

希望对你有帮助。

关于ios - dispatch_async 用于从 url 获取许多图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27562979/

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