Добавьте "ЭТО было переименовано в ЭТО" для моей собственной структуры в iOS - PullRequest
2 голосов
/ 06 января 2020

Допустим, у меня есть фреймворк A, который я динамически включаю во многие проекты, добавляя файл A.framework в проекты.

Рассмотрим сценарий внутри кода фреймворка A :

struct Foo {    
  static let `default` = Foo()    
}

Теперь я изменил имя с default на shared:

struct Foo {    
  static let shared = Foo()    
}

Теперь, когда мы обновляем Swift версии , если некоторые изменения синтаксиса, иногда мы получаем ошибку, такую ​​как

«NSLayoutAttribute» был переименован в «NSLayoutConstraint.Attribute»

, где мы нажимаем fix Нажмите кнопку внутри этой ошибки, и имя изменится автоматически.

Я хочу добиться того же, когда я сделаю изменение имени или изменение объявления функции внутри моего A.framework и разверните его в приложениях, использующих его. Есть ли известный способ добиться того же?

1 Ответ

7 голосов
/ 06 января 2020

Вы можете добиться того же поведения, используя атрибут @ available .

struct Foo {

    @available(*, unavailable, renamed: "shared")
    static let defaults = Foo()

    static let shared = Foo()
}

Это даст вам точное поведение, как показано здесь:

Replace dialog


Примечание: Вы можете сделать то же самое и с функциями, только вы должны иметь одинаковое количество параметров.

struct Foo {

    @available(*, unavailable, renamed: "sharedFun(fName:lName:)")
    static func defaultFun(first: String, last: String) {}

    static func sharedFun(fName: String, lName: String) {}
}

Replace dialog - Function

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...