【问题标题】:Method swizzling in Swift 3.1Swift 3.1 中的方法调配
【发布时间】:2017-02-28 20:35:29
【问题描述】:

现在在 Xcode (8.3b3) 中,使用 Swift 3.1,有一个新的编译器警告说方法 initialize() 将在未来的版本中被禁止,有替代方法的方法吗?

【问题讨论】:

  • 你可以在 Objective-C 中写出令人毛骨悚然的代码吗?
  • 你仍然可以在 Swift 中进行混搭,但 Swift 无法在加载类时自动执行代码。所以你必须在某个地方明确地启动 swizzling(除非你按照 matt 的建议与 Objective-C 混合)。

标签: swift


【解决方案1】:

在应用程序委托中实现方法 swizzling 而不是添加 通过类扩展进行方法调配,只需向应用程序添加一个方法 代表何时执行 application(_:didFinishLaunchingWithOptions:) 被调用。根据 您正在修改的类,这可能就足够了,应该 保证您的代码每次都执行。

来源:NsHipster

【讨论】:

  • 此方法不适用于在应用程序扩展执行上下文期间初始化的类,因为在这种情况下不会调用 AppDelegate 的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
  • 2017-12-21
  • 2021-02-06
  • 2021-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多