Swift async await 使用介绍

复制代码
//
//  ViewController.swift
//  AsynWait
//
//  Created by shengjie on 2022/2/9.
//

import UIKit

class ViewController: UIViewController {
    @IBOutlet var imageView: UIImageView!
    override func viewDidLoad() {
        super.viewDidLoad()
        /// 老方法
        async {
            let data = await getImage()
            DispatchQueue.main.async {
                self.imageView.image = UIImage(data: data)
            }
        }
        /// 新方法
        Task(priority: .low) {
            let data = await getImage()
            DispatchQueue.main.async {
                self.imageView.image = UIImage(data: data)
            }
        }

        // Do any additional setup after loading the view.
    }

    func getImage() async -> Data {
        do {
            let (d, _) = try await URLSession.shared.data(for: URLRequest(url: URL(string: "https://raw.githubusercontent.com/1401788197/VideoSliderCrop/master/VideoPlayDemo/IMG_0950.jpg")!))
            return d
        } catch {
            return Data()
        }
    }
}
复制代码

 

posted @   ZhangShengjie  阅读(506)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2020-02-09 iOS 线程同步 NSLock、NSRecursiveLock、NSCondition、NSConditionLock
点击右上角即可分享
微信分享提示