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 错误)