Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift 3.0:参数标签';(389;:)不匹配任何可用的重载_Ios_Swift_Sprite Kit_Swift3_Avaudiosession - Fatal编程技术网

Ios Swift 3.0:参数标签';(389;:)不匹配任何可用的重载

Ios Swift 3.0:参数标签';(389;:)不匹配任何可用的重载,ios,swift,sprite-kit,swift3,avaudiosession,Ios,Swift,Sprite Kit,Swift3,Avaudiosession,我刚转换成Swift 3,我需要帮助解决这个错误。我昨天转换成swift 3时出现了这个错误,完整的代码运行得很好。我试一试?在它里面,但它根本没有修复错误,它保持不变 import Foundation import AVFoundation class AudioHelper: NSObject, AVAudioPlayerDelegate { var player : AVAudioPlayer? class var defaultHelper : AudioHelp

我刚转换成Swift 3,我需要帮助解决这个错误。我昨天转换成swift 3时出现了这个错误,完整的代码运行得很好。我试一试?在它里面,但它根本没有修复错误,它保持不变

import Foundation
import AVFoundation

class AudioHelper: NSObject, AVAudioPlayerDelegate {
    var player : AVAudioPlayer?


    class var defaultHelper : AudioHelper {
        struct Static {
            static let instance : AudioHelper = AudioHelper()
        }

        return Static.instance
    }

    override init() {
        super.init()
    }

    func initializeAudio() {
        let url = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("", ofType: "")!)
        self.player = try! AVAudioPlayer(contentsOfURL: url, fileTypeHint: nil)
        self.player?.numberOfLoops = -1
        self.player?.play()        
    }

    func stopAudio() {
        self.player?.stop()
        self.player?.prepareToPlay()
    }

    func startAudio() {
          AVAudioSession.sharedInstance().setActive(true, error: nil)
          self.player?.play()
    }


    func audioPlayerDidFinishPlaying(player: AVAudioPlayer, successfully flag: Bool) {
        AVAudioSession.sharedInstance().setActive(false, error: nil)
    }
}

您可以通过以下方式处理异常:

do {
        try AVAudioSession.sharedInstance().setActive(true)
} catch {

}
未捕获:

try? AVAudioSession.sharedInstance().setActive(true)

错误图像查看方法
setActive(:)
——它抛出而不是获取错误参数。因此,只要删除错误参数并在调用前加上一个
try?
,如果你不在乎抛出错误的话。也可能更好的是复制目标。这对我的回答没有帮助,它是不同的。@Hamish说更改
Avaudiossiom.sharedInstance().setActive的两个实例(false,错误:nil)
试试?AVAudioSession.sharedInstance().setActive(false)
自签名在Swift 3中更改后