
概述我刚刚在Xcode 7 beta中打开了我的旧项目.代码在Xcode 6中运行得非常好,但现在它显示了很多错误.我不知道那些是什么.能有人解释为什么会这样,以及如何解决它?谢谢!这是代码 import UIKitimport AVFoundationclass ViewController: UIViewController { var player: AVAudioPlayer = 我刚刚在Xcode 7 beta中打开了我的旧项目.代码在Xcode 6中运行得非常好,但现在它显示了很多错误.我不知道那些是什么.能有人解释为什么会这样,以及如何解决它?谢谢!这是代码
@H_301_11@import UIKitimport AVFoundationclass VIEwController: UIVIEwController { var player: AVAudioPlayer = AVAudioPlayer() @IBOutlet weak var firstCardImageVIEw: UIImageVIEw! @IBOutlet weak var secondCardImageVIEw: UIImageVIEw! @IBOutlet weak var label: UILabel! var cardnamesArray:[String] = ["dice1","dice2","dice3","dice4","dice5","dice6"] overrIDe func vIEwDIDLoad() { super.vIEwDIDLoad() // Do any additional setup after loading the vIEw,typically from a nib. } overrIDe func dIDReceiveMemoryWarning() { super.dIDReceiveMemoryWarning() // dispose of any resources that can be recreated. } @IBAction func rollaction(sender: AnyObject) { updateAction() } func updateAction(){ var firstRandomNumber = Int(arc4random_uniform(5)) var firstCardString:String = String(self.cardnamesArray[firstRandomNumber]) var secondRandomNumber = Int(arc4random_uniform(5)) var secondCardString:String = String(self.cardnamesArray[secondRandomNumber]) self.firstCardImageVIEw.image = UIImage(named: firstCardString) self.secondCardImageVIEw.image = UIImage(named: secondCardString) var fileLocation = NSBundle.mainBundle().pathForResource("sound",ofType: ".mp3") var error: NSError? = nil player = AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: fileLocation!),error: &error) //Error: Cannot find an initializer for type 'AVAudioPlayer' that accepts an argument List of type '(contentsOfURL: NSURL,error: inout NSError?)' AVAudioSession.sharedInstance().setcategory(AVAudioSessioncategoryAmbIEnt,error: nil) //Error:Extra argument 'error' in call AVAudioSession.sharedInstance().setActive(true,error: nil) //Error:Extra argument 'error' in call player.play() let num = firstRandomNumber + secondRandomNumber + 2 self.label.text = "The sum is \(num)" } overrIDe func motionEnded(motion: UIEventSubtype,withEvent event: UIEvent) { if event.subtype == UIEventSubtype.MotionShake { //Error:Method does not overrIDe any method from its superclass updateAction() } }}解决方法 这是使用Swift 2.0的do / try / catch实现的updateAction()函数:
@H_301_11@func updateAction(){ var firstRandomNumber = Int(arc4random_uniform(5)) var firstCardString:String = String(self.cardnamesArray[firstRandomNumber]) var secondRandomNumber = Int(arc4random_uniform(5)) var secondCardString:String = String(self.cardnamesArray[secondRandomNumber]) self.firstCardImageVIEw.image = UIImage(named: firstCardString) self.secondCardImageVIEw.image = UIImage(named: secondCardString) let fileLocation = NSBundle.mainBundle().pathForResource("sound",ofType: ".mp3") do { player = try AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath: fileLocation!)) try AVAudioSession.sharedInstance().setcategory(AVAudioSessioncategoryAmbIEnt) try AVAudioSession.sharedInstance().setActive(true) } catch { print("Something bad happened. Try catching specific errors to narrow things down") } player.play() let num = firstRandomNumber + secondRandomNumber + 2 self.label.text = "The sum is \(num)"} 总结
以上是内存溢出为你收集整理的ios – Swift 2迁移问题全部内容,希望文章能够帮你解决ios – Swift 2迁移问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
评论列表(0条)