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

Posted

技术标签:

【中文标题】Swift 3.0:参数标签 \'(_:) 不匹配任何可用的重载【英文标题】:Swift 3.0: argument labels '(_:) do not match any available overloadsSwift 3.0:参数标签 '(_:) 不匹配任何可用的重载 【发布时间】:2016-09-13 21:23:37 【问题描述】:

我刚刚转换为 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)
    

【问题讨论】:

i.stack.imgur.com/irdef.png 错误图片 查看the documentation 方法setActive(_:) - 它抛出而不是采用错误参数。因此,如果您不关心引发的错误,只需删除错误参数并在调用前加上 try? 也可能更好地欺骗目标Swift 2 AVAudioSession setCategory extra argument 'error' 这对我的回答没有帮助,它是不同的。 @Hamish 说将你的两个 AVAudioSessiom.sharedInstance().setActive(false, error: nil) 实例更改为 try? AVAudioSession.sharedInstance().setActive(false),因为签名在 Swift 3 中发生了变化 【参考方案1】:

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

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


没有抓到:

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

【讨论】:

以上是关于Swift 3.0:参数标签 '(_:) 不匹配任何可用的重载的主要内容,如果未能解决你的问题,请参考以下文章

Swift CGPoint 参数标签 '(_:, _:)' 不匹配任何可用的重载

swift 3 错误:参数标签 '(_:)' 与 UICollectionViewLayout 上的任何可用重载都不匹配(旋转轮)

Swift 3 错误:“参数标签 '(named:_:,_:,)' 不匹配任何可用的重载”,同时尝试将 UIImage 数组加载到 UITableView

参数标签 '(rawValue:)' 不匹配任何可用的重载(xcode 错误)

参数标签 '(xml:, url:, encoding:, option:)' 不匹配任何可用的重载

如何在 swift 3.0 中将此类参数发送到服务器调用