AVAudioPlayer不再在Swift 2.0 / Xcode 7 beta中工作

亚拉奈卡

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

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

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

当我移到Xcode 7 beta时发生了这种情况。

如何使此音频剪辑在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", ofType: "wav")!), fileTypeHint:nil)
    } catch {
        //Handle the error
    }
}

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Swift 3 UnsafePointer($ 0)不再在Xcode 8 beta 6中编译

SKCropNode在Xcode 7 + Swift 2中无法正常工作

无法使SWRevealViewController工作(Swift 2,Xcode 7)

自XCode 7 beta 2起,UITapGestureRecognizer无法正常工作

XCode 7 Beta / Swift 2中的单元测试核心数据

Swift 2中文档注释的新格式是什么?(XCode 7 beta 3)

使用swift 2(xcode 7 beta 5)解析注册错误

Xcode 7 Beta 5 Swift 2冗余符合协议错误

Swift 2 Playground(Xcode 7 Beta 4)-数组中的多个类型仅在导入UIKit时才起作用吗?

tableView.reloadData()在使用Simulator的Xcode 7 beta 4和Swift2中不起作用

设备上的XCode7 beta2和iOS8.4无法正常工作

Xcode 7,Swift 2中的Gmail API iOS

尝试在Xcode 7 / Swift 2中播放视频时出错

Xcode 7 Beta 6,dyld ___NSArray0__崩溃

在Swift中,是否存在#ifdef来区分Xcode 6.4和Xcode 7 beta?

线程1:Xcode 6 beta 7中的println()上的EXC_BAD_ACCESS(code = 1,address = 0x0)

Alamofire Swift 2-无法提交Beta测试(Xcode 7 GM)

Swift和XCode 7 Beta 2未显示正在播放的歌曲的元数据

资产目录中的图像不再在Xcode 10中可用

带有Xcode 7,Swift 2的TouchID

_BSMachError XCode 7 Beta

Xcode 7 beta 2上的“没有这样的模块”

Xcode 7 beta 5,Swift 2:UITableViewCell的子视图在运行时未添加到contentView

Xcode6 beta 7 Swift无法使用UIPickerViewDataSource

在Xcode 7 / Swift 2中播放音频不起作用

在XCODE 7(swift 2)-CGPOINTMAKE中构建我的第一个游戏?

当LoginView是初始视图时,在情节提要中对UITabBarController进行子类化[Swift2,Xcode 7]

升级到iOS 8.4后,iPhone成为Xcode 7 beta2中不合格的设备

Xcode 7 Beta无法安装