【发布时间】:2019-05-03 08:19:47
【问题描述】:
例如,我们有以下代码
func testFunc<T>(_ value: T) {
// do something
}
// This overloaded function is provided on a newer version of SDK, we need to check the SDK version.
func testFunc<T>(_ value: T?) {
// do something if we have an optional value
}
如果我有一个 optional 值,我如何指定我要调用 first 函数而不是 second 函数?这背后的基本原理是 second 功能可能仅在较新的 SDK 上可用,因此我需要备用。
【问题讨论】:
-
确定是老版本的SDK,会调用老版本的函数吗?如果函数在 UIKit 中,我们可以在最新的 Xcode 中看到两者,但是使用可选值调用
testFunc将自动解析为第二个函数。如果我们在第二个函数中添加可用性注释,Xcode 会报错。
标签: swift generics overloading