Phosphophyllite

情報系学部に通う雑魚学生の日常・進捗・疑問ブログ

Xcode6.3、Swift1.2に上げたら既存コードでゴリゴリエラー吐かれた(5/21追記)

【5/21追記】init系のエラーについてはこっちの記事でお願いします。
mimaunes.hatenablog.com



なんかダウンキャストが "as" から "as!" になってた。
myDevice = device as AVCaptureDevice

myDevice = device as! AVCaptureDevice

これ手動でゴリゴリ直してから知ったんだけど、
Xcode

Edit -> Convert -> To Latest Swift Syntax...

で一気におおまかには一気に修正できるらしい。
早く知りたかったなぁ!!

デリゲートメソッドの引数が変わった

最初気づかなくて、試しに打ちなおしてみて補完後のと見比べてやっと気が付いた。
当然中の扱いも変わるので

 override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
        
        // タッチイベントを取得.
        let aTouch = touches.object as UITouch
}

override func touchesMoved(touches: Set<NSObject>, withEvent event: UIEvent) {
        
        // タッチイベントを取得.
        let aTouch = touches.first as! UITouch
}

とか。

override init()... でエラー吐かれた


個人的にはこれが今のところ面倒くさかった。

override init() {
      super.init()
}

って書いてたところでエラー出てた(エラーメモっておくの忘れた)

// UIViewController
override init() {
      super.init(nibName: nil, bundle: nil)
}

// UIView
override init() {
      super.init(frame: CGRectMake(0, 0, 0, 0))
}

これで通った。
なんでとかはまだ調べてないので要勉強。