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

时间:2017-06-12 08:48:05

标签: ios swift4 iqkeyboardmanager

我正在将我的应用程序从Swift 3更新到Swift 4,并且在迁移之后,存在一些错误。其中一个Method 'initialize()' defines Objective-C class method 'initialize', which is not permitted by SwiftIQKeyboardManager的IQToolbar中,如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

- 您也可以使用Singleton解决此问题,例如:

    static let shared : AudioTools = {
           $0.initialize()
           return $0
       }(AudioTools())

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

override class func initialize(){code here}

变化:

func initialize(){code here}

您的方法:

func playSound(fileName:String?) {
       code here
    }

在Swift3中使用:

let audioPlayer = AudioTools.playMusic(fileName: fileName)

在Swift4中使用

let audioPlayer = AudioTools.shared.playMusic(fileName: fileName)