为什么它能成功编译并运行?(SWIFT 5.8)

protocol AsyncOverloaded {
    func load()
    func load() async throws
}

class MyClass: AsyncOverloaded {
    func load() {
        print("load called")
    }
}

let myClass = MyClass()
myClass.load()
// prints "load called"

据我所知,MyClass实际上并不符合AsyncOverloaded号议定书.

先谢谢你.

推荐答案

MyClass中的功能load()满足两个协议要求.

非抛出函数满足抛出函数的要求,因为它就像一个从不实际抛出的抛出函数.类似地,同步功能可以满足async的要求.

Ios相关问答推荐

在SwiftData中从@ Query创建可排序、有序和分组的数据

SwiftUI.从自定义视图修改器访问自定义视图子视图

UIAlertController的空子类是否可以与`appearance(whenContainedInInstancesOf:)`一起安全使用

如何使用 SwiftData 从列表中删除子项目?

更改订单时如何保存商品的位置?

如何以编程方式触发 SwiftUI DatePicker?

撤销 Apple 登录令牌以进行帐户删除过程

包装在 AnyView 中时 UIViewControllerRepresentable 无法正常工作

Xcode 14 弃用了位码 - 但为什么呢?

如何在通用应用程序中同时支持 iPad 和 iPhone 视网膜图形

Xcode 4.1 致命错误:自构建预编译头文件后修改了 stdlib

如何从一个特定的视图控制器中隐藏导航栏

Swift:调用中缺少参数标签xxx

如何在 iOS 中判断暗模式?

iPhone 未连接.连接 iPhone 后 Xcode 将继续

如何使用 Contacts Framework 获取 iOS 9 中的所有联系人记录

从 UIScrollview 中删除内容和框架布局指南

从故事板导航到其他 Swift 1.2 文件时 Xcode 6.3 崩溃

UIView 中的 safeAreaInsets 在 iPhone X 上为 0

你如何以编程方式从视图控制器中画一条线?