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