ios – AVAudioPlayer不再使用Swift 2.0/Xcode 7 beta

对于我的iPhone应用程序中的var testAudio声明,我在这里收到错误

调用可以抛出,但错误不能从属性初始化程序中抛出”

import UIKit
import AVFoundation
class ViewController: UIViewController {
    var testAudio = AVAudioPlayer(contentsOfURL: NSURL (fileURLWithPath: NSBundle.mainBundle().pathForResource("testAudio",ofType: "wav")!),fileTypeHint:nil)

当我转到Xcode 7测试版时,就发生了这种情况.

如何在Swift 2.0中使用此音频剪辑?

解决方法

Swift 2有一个全新的错误处理系统,您可以在这里阅读更多相关信息: Swift 2 Error Handling.

在您的情况下,AVAudioPlayer构造函数可能会抛出错误. Swift不会让你使用在属性初始化器中抛出错误方法,因为没有办法在那里处理它们.相反,不要在视图控制器的init之前初始化属性.

var testAudio:AVAudioPlayer;

init() {
    do {
        try testAudio = AVAudioPlayer(contentsOfURL: NSURL (fileURLWithPath: NSBundle.mainBundle().pathForResource("testAudio",fileTypeHint:nil)
    } catch {
        //Handle the error
    }
}

这使您有机会处理创建音频播放器时可能出现的任何错误,并会阻止Xcode向您发出警告.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...