Xcode 13出现在WWDC21 上,并包含了大量新元素、升级和性能改进。在本文中,我将向您介绍我认为有趣且有用的关键更改。
Swift
Swift 现在原生支持使用 async/await 和 actor 的并发编程。欲了解更多信息,请参阅什么在斯威夫特的新的,符合异步/地等待着斯威夫特,并在斯威夫特探索构建并发。
如果您有使用 completionHandler 的代码,则可以轻松重构它们。新的重构有助于迁移到异步代码。“Convert Call to Async Alternative”可用于将完成处理程序作为最后一个参数的调用,并重构它们以使用新的异步语言功能,假设该函数的异步等效项已经存在。
异步函数可以同时创建与执行子任务async let绑定。子任务从父级声明的点开始async let,而变量在使用它们的点async let声明await。在async let等待,直到子任务完成并返回一个值。
func chopVegetables() async throws -> [Vegetables]
func marinateMeat() async -> Meat
func preheatOven(temperature: Int) async -> Oven
func makeDinner() async throws -> Meal {
async let veggies = chopVegetables()
async let meat = marinateMeat()
async let oven = preheatOven(temperature: 350)
let dish = Dish(ingredients: await [try veggies, meat])
return try await oven.cook(dish, duration: .hours(3))}
}
所有子任务在声明它们的范围退出之前完成。
精品教程推荐
加入我们一起学习SwiftUI
QQ:3365059189
SwiftUI技术交流QQ群:518696470
教程网站:www.openswiftui.com