您可以弃用一个函数,以便默认使用不同的重载吗?

问题描述 投票:0回答:1

我正在开发一个项目,其中编写了许多函数,这些函数掩盖了与普通 SwiftUI 函数完全相同的接口。

func padding(_ padding: OurOwnPadding) -> some View

这里的

OurOwnPadding
不是
SwiftUI
类型,而是已作为自定义类型添加到项目中。

这意味着当您在视图中并执行

.padding(.horizontal)
操作时。尽管看起来您正在使用 SwiftUI 函数,但实际上并非如此。你用的就是这个。

我们正在尝试删除这些功能,但最好不要让新实例使用它。

我可以以某种方式标记这个函数,以便选择实际的普通 SwiftUI 函数而不是这个函数吗?只有当我做了类似的事情时,它才应该选择这个功能。

let padding = OurOwnPadding.horizontal

...

.padding(padding)
swiftui
1个回答
1
投票

您可以用

padding
 标记您自己的 
@_disfavoredOverload
方法。从文档来看,

使用

@_disfavoredOverload
解决重载解析规则中的已知错误,这些错误在不中断源代码的情况下无法立即修复。不要使用它来调整重载解析规则,否则这些规则是合理的,但会为您的特定 API 产生不良结果

从您对情况的描述来看,这似乎是“重载解析规则无法在不中断源代码的情况下立即修复”的情况。

© www.soinside.com 2019 - 2024. All rights reserved.