如何修复方法'initialize()'定义了Objective-C类方法'初始化',这在Swift 4中是Swift所不允许的?

Var*_*ria 5 ios swift4 iqkeyboardmanager

我正在将我的应用程序从Swift 3更新到Swift 4,迁移之后,出现了一些错误。其中之一Method 'initialize()' defines Objective-C class method 'initialize', which is not permitted by Swift在的IQToolbar中IQKeyboardManager,该如何解决?

use*_*635 1

- 你也可以使用 Singleton 解决这个问题,例如:

    static let shared : AudioTools = {
           $0.initialize()
           return $0
       }(AudioTools())
Run Code Online (Sandbox Code Playgroud)

你的 Objective-C 方法--->初始化

override class func initialize(){code here}
Run Code Online (Sandbox Code Playgroud)

改变:

func initialize(){code here}
Run Code Online (Sandbox Code Playgroud)

你的方法在这里:

func playSound(fileName:String?) {
       code here
    }
Run Code Online (Sandbox Code Playgroud)

在 Swift3 中使用:

let audioPlayer = AudioTools.playMusic(fileName: fileName)
Run Code Online (Sandbox Code Playgroud)

在 Swift4 中使用

let audioPlayer = AudioTools.shared.playMusic(fileName: fileName) 
Run Code Online (Sandbox Code Playgroud)