在 iOS 中为我​​自己的框架添加“THIS 已重命名为 THAT”

Posted

技术标签:

【中文标题】在 iOS 中为我​​自己的框架添加“THIS 已重命名为 THAT”【英文标题】:Add "THIS has been renamed to THAT" for my own framework in iOS 【发布时间】:2020-01-06 10:40:56 【问题描述】:

假设我有一个框架A,我通过在项目中添加A.framework 文件动态地将其包含在许多项目中。

考虑框架A代码中的一个场景:

struct Foo     
  static let `default` = Foo()    

现在我把名字从default改成了shared

struct Foo     
  static let shared = Foo()    

现在,随着我们更新 Swift 版本,如果某些语法发生变化,我们有时会收到类似

的错误

“NSLayoutAttribute”已重命名为“NSLayoutConstraint.Attribute”

我们点击该错误内的修复按钮,名称会自动更改。

当我在A.framework 中进行一些名称更改函数声明更改 并将其推广到使用它的应用程序时,我想实现同样的效果。有没有已知的方法可以达到同样的效果?

【问题讨论】:

【参考方案1】:

您可以使用@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) 

【讨论】:

谢谢。你知道如何为函数重命名做这件事吗? @user121095 你也可以对函数使用相同的属性(唯一的问题是,你必须有相同数量的输入参数):i.stack.imgur.com/R3hdT.png

以上是关于在 iOS 中为我​​自己的框架添加“THIS 已重命名为 THAT”的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 应用中为动态下载的图像添加样式

如何在rest框架中为我的注册视图编写登录视图?

我们如何让 NSTimer 在 iOS 中为我​​的音频播放器在后台运行

在 iOS 6 中为我的应用程序登录 Facebook [关闭]

iOS:如何在这种方法中为我的每个单元格分配一个标签?

如何在 Xcode 中为我的表格视图添加上边距?