如何修复方法'initialize()'定义了Swift 4中Swift不允许的Objective-C类方法'initialize'?

问题描述:

我正在更新我的应用程序从Swift 3到Swift 4,并且在迁移之后,出现了一些错误。其中一个是IQKeyboardManager的IQToolbar中的Method 'initialize()' defines Objective-C class method 'initialize', which is not permitted by Swift,如何解决这个问题?如何修复方法'initialize()'定义了Swift 4中Swift不允许的Objective-C类方法'initialize'?

- 您也可以使用辛格尔顿解决这个问题,比如:

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

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

override class func initialize(){code here} 

变化:

func initialize(){code here} 

您的方法在这里:在Swift3

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

使用:在Swift4

let audioPlayer = AudioTools.playMusic(fileName: fileName) 

使用

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

我已经在这个环节回答:https://开头计算器.com/a/46360311/1581772 我在哪里可以看到使用单例(像@ user8152635一样)或者你可以使用公共静态方法的地方 –