如何修复“Method 'initialize()' defines Objective-C class method 'initialize', which is not permitted by Swift in Swift 4”的问题?

7

我正在将我的应用从Swift 3更新到Swift 4,在迁移后,出现了一些错误。其中之一是在的中的initialize()方法定义了Objective-C类方法initialize,这在Swift中是不允许的,如何解决?

1个回答

1

- 您也可以使用单例模式来解决这个问题,例如:

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

您的目标-C方法--->initialize
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) 

我在这个链接中回答了:https://dev59.com/-18e5IYBdhLWcg3whqvl#46360311我展示了你可以使用单例(就像@user8152635所做的那样)或者你可以使用公共静态方法。 - Christopher Rex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接