假设我有一个框架,A
,我通过在项目中添加 A.framework
文件动态地包含在很多项目中。
考虑框架 A
代码中的一个场景:
struct Foo {
static let `default` = Foo()
}
现在我将名称从 default
更改为 shared
:
struct Foo {
static let shared = Foo()
}
现在,当我们更新 Swift 版本时,如果某些语法发生变化,我们有时会收到类似这样的错误
'NSLayoutAttribute' has been renamed to 'NSLayoutConstraint.Attribute'
我们点击该错误中的修复按钮,名称会自动更改。
当我在 A.framework
中进行一些名称更改 或 函数声明更改 并将其推出到使用它的应用程序。是否有已知的方法来实现相同的目标?
最佳答案
您可以使用 @available 实现相同的行为属性。
struct Foo {
@available(*, unavailable, renamed: "shared")
static let defaults = Foo()
static let shared = Foo()
}
它将为您提供如下所示的确切行为:
注意: 您也可以对函数执行相同的操作,唯一的问题是您必须具有相同数量的参数。
struct Foo {
@available(*, unavailable, renamed: "sharedFun(fName:lName:)")
static func defaultFun(first: String, last: String) {}
static func sharedFun(fName: String, lName: String) {}
}
关于ios - 在 iOS 中为我自己的框架添加 "THIS has been renamed to THAT",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59610627/