这是我的代码,声音正在播放,但在我更新到xcode 6.1后,我收到此错误
通话中的额外参数'contentsOfURL'
var alertSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("sound", ofType: "aiff")!)
//println(alertSound);
// Removed deprecated use of AVAudioSessionDelegate protocol
AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: nil)
AVAudioSession.sharedInstance().setActive(true, error: nil)
var error:NSError?;
audioPlayer = AVAudioPlayer(contentsOfURL: alertSound, error: &error); // the error
audioPlayer.prepareToPlay();
如何修复错误和xcode以停止显示
答案 0 :(得分:0)
在这一行:
audioPlayer = AVAudioPlayer(contentsOfURL: alertSound, error: &error)
问题是alertSound
现在是可选的,因为NSURL(fileURLWithPath:)
可以返回nil。你需要解开它:
audioPlayer = AVAudioPlayer(contentsOfURL: alertSound!, error: &error)
这将允许您的代码编译。但是,在你这样做之前,明确检查alertSound
是否为零可能更好!如果 为零,则直接展开会导致崩溃。
答案 1 :(得分:-1)
您需要更改URLForResource的pathForResource
像这样:
var alertSound = NSURL(fileURLWithPath: NSBundle.mainBundle().URLForResource("sound", ofType: "aiff")!)
contentsOfURL需要一个NSURL而不是一个字符串。